@databricks/appkit-ui 0.34.1 → 0.35.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/CLAUDE.md CHANGED
@@ -83,6 +83,7 @@ npx @databricks/appkit docs <query>
83
83
  - [Function: createAgent()](./docs/api/appkit/Function.createAgent.md): Pure factory for agent definitions. Returns the passed-in definition after
84
84
  - [Function: createApp()](./docs/api/appkit/Function.createApp.md): Bootstraps AppKit with the provided configuration.
85
85
  - [Function: createLakebasePool()](./docs/api/appkit/Function.createLakebasePool.md): Create a Lakebase pool with appkit's logger integration.
86
+ - [Function: createLakebasePoolManager()](./docs/api/appkit/Function.createLakebasePoolManager.md): Create a pool manager that maintains per-key Lakebase connection pools.
86
87
  - [Function: defineTool()](./docs/api/appkit/Function.defineTool.md): Defines a single tool entry for a plugin's internal registry.
87
88
  - [Function: executeFromRegistry()](./docs/api/appkit/Function.executeFromRegistry.md): Validates tool-call arguments against the entry's schema and invokes its
88
89
  - [Function: extractServingEndpoints()](./docs/api/appkit/Function.extractServingEndpoints.md): Extract serving endpoint config from a server file by AST-parsing it.
@@ -128,7 +129,9 @@ npx @databricks/appkit docs <query>
128
129
  - [Interface: JobAPI](./docs/api/appkit/Interface.JobAPI.md): User-facing API for a single configured job.
129
130
  - [Interface: JobConfig](./docs/api/appkit/Interface.JobConfig.md): Per-job configuration options.
130
131
  - [Interface: JobsConnectorConfig](./docs/api/appkit/Interface.JobsConnectorConfig.md): Properties
132
+ - [Interface: LakebasePool](./docs/api/appkit/Interface.LakebasePool.md): Subset of pg.Pool exposed by the Lakebase plugin.
131
133
  - [Interface: LakebasePoolConfig](./docs/api/appkit/Interface.LakebasePoolConfig.md): Configuration for creating a Lakebase connection pool
134
+ - [Interface: LakebasePoolManager](./docs/api/appkit/Interface.LakebasePoolManager.md): Manages multiple Lakebase connection pools keyed by an identifier (e.g. userId).
132
135
  - [Interface: McpConnectAllResult](./docs/api/appkit/Interface.McpConnectAllResult.md): Per-endpoint outcome of AppKitMcpClient.connectAll. Callers (the
133
136
  - [Interface: Message](./docs/api/appkit/Interface.Message.md): Properties
134
137
  - [Interface: PluginManifest<TName>](./docs/api/appkit/Interface.PluginManifest.md): Plugin manifest that declares metadata and resource requirements.
@@ -0,0 +1,36 @@
1
+ # Function: createLakebasePoolManager()
2
+
3
+ ```ts
4
+ function createLakebasePoolManager(baseConfig?: Partial<LakebasePoolConfig>): LakebasePoolManager;
5
+
6
+ ```
7
+
8
+ Create a pool manager that maintains per-key Lakebase connection pools.
9
+
10
+ Each pool is created via `createLakebasePool` with the base config merged with per-pool overrides (e.g. a user's `workspaceClient` and `user`).
11
+
12
+ A periodic cleanup removes empty Pool objects (where all connections have been closed by pg's built-in `idleTimeoutMillis`) from the internal Map.
13
+
14
+ ## Parameters[​](#parameters "Direct link to Parameters")
15
+
16
+ | Parameter | Type |
17
+ | ------------- | ------------------------------------------------------------------------------------------ |
18
+ | `baseConfig?` | `Partial`<[`LakebasePoolConfig`](./docs/api/appkit/Interface.LakebasePoolConfig.md)> |
19
+
20
+ ## Returns[​](#returns "Direct link to Returns")
21
+
22
+ [`LakebasePoolManager`](./docs/api/appkit/Interface.LakebasePoolManager.md)
23
+
24
+ ## Example[​](#example "Direct link to Example")
25
+
26
+ ```typescript
27
+ const poolManager = createLakebasePoolManager();
28
+
29
+ // In a route handler:
30
+ const userPool = poolManager.getPool(userName, {
31
+ workspaceClient: new WorkspaceClient({ token: userToken, host, authType: "pat" }),
32
+ user: userName,
33
+ });
34
+ const result = await userPool.query("SELECT * FROM products");
35
+
36
+ ```
@@ -0,0 +1,84 @@
1
+ # Interface: LakebasePool
2
+
3
+ Subset of `pg.Pool` exposed by the Lakebase plugin.
4
+
5
+ RoutingPool does not extend EventEmitter — event listener methods like `on('error', ...)` are not available. Use `query()`, `connect()`, and `end()` for all pool operations.
6
+
7
+ ## Properties[​](#properties "Direct link to Properties")
8
+
9
+ ### idleCount[​](#idlecount "Direct link to idleCount")
10
+
11
+ ```ts
12
+ readonly idleCount: number;
13
+
14
+ ```
15
+
16
+ ***
17
+
18
+ ### totalCount[​](#totalcount "Direct link to totalCount")
19
+
20
+ ```ts
21
+ readonly totalCount: number;
22
+
23
+ ```
24
+
25
+ ***
26
+
27
+ ### waitingCount[​](#waitingcount "Direct link to waitingCount")
28
+
29
+ ```ts
30
+ readonly waitingCount: number;
31
+
32
+ ```
33
+
34
+ ## Methods[​](#methods "Direct link to Methods")
35
+
36
+ ### connect()[​](#connect "Direct link to connect()")
37
+
38
+ ```ts
39
+ connect(): Promise<PoolClient>;
40
+
41
+ ```
42
+
43
+ #### Returns[​](#returns "Direct link to Returns")
44
+
45
+ `Promise`<`PoolClient`>
46
+
47
+ ***
48
+
49
+ ### end()[​](#end "Direct link to end()")
50
+
51
+ ```ts
52
+ end(): Promise<void>;
53
+
54
+ ```
55
+
56
+ #### Returns[​](#returns-1 "Direct link to Returns")
57
+
58
+ `Promise`<`void`>
59
+
60
+ ***
61
+
62
+ ### query()[​](#query "Direct link to query()")
63
+
64
+ ```ts
65
+ query<T>(text: string, values?: unknown[]): Promise<QueryResult<T>>;
66
+
67
+ ```
68
+
69
+ #### Type Parameters[​](#type-parameters "Direct link to Type Parameters")
70
+
71
+ | Type Parameter | Default type |
72
+ | ------------------------------ | ------------ |
73
+ | `T` *extends* `QueryResultRow` | `any` |
74
+
75
+ #### Parameters[​](#parameters "Direct link to Parameters")
76
+
77
+ | Parameter | Type |
78
+ | --------- | ------------ |
79
+ | `text` | `string` |
80
+ | `values?` | `unknown`\[] |
81
+
82
+ #### Returns[​](#returns-2 "Direct link to Returns")
83
+
84
+ `Promise`<`QueryResult`<`T`>>
@@ -0,0 +1,101 @@
1
+ # Interface: LakebasePoolManager
2
+
3
+ Manages multiple Lakebase connection pools keyed by an identifier (e.g. userId).
4
+
5
+ Used for On-Behalf-Of (OBO) scenarios where each user needs their own pool with their own OAuth token refresh, enabling features like Row-Level Security.
6
+
7
+ ## Properties[​](#properties "Direct link to Properties")
8
+
9
+ ### size[​](#size "Direct link to size")
10
+
11
+ ```ts
12
+ readonly size: number;
13
+
14
+ ```
15
+
16
+ Number of active pools.
17
+
18
+ ## Methods[​](#methods "Direct link to Methods")
19
+
20
+ ### closeAll()[​](#closeall "Direct link to closeAll()")
21
+
22
+ ```ts
23
+ closeAll(): Promise<void>;
24
+
25
+ ```
26
+
27
+ Close all managed pools and stop cleanup (for graceful shutdown).
28
+
29
+ #### Returns[​](#returns "Direct link to Returns")
30
+
31
+ `Promise`<`void`>
32
+
33
+ ***
34
+
35
+ ### closePool()[​](#closepool "Direct link to closePool()")
36
+
37
+ ```ts
38
+ closePool(key: string): Promise<void>;
39
+
40
+ ```
41
+
42
+ Close and remove a specific pool.
43
+
44
+ #### Parameters[​](#parameters "Direct link to Parameters")
45
+
46
+ | Parameter | Type |
47
+ | --------- | -------- |
48
+ | `key` | `string` |
49
+
50
+ #### Returns[​](#returns-1 "Direct link to Returns")
51
+
52
+ `Promise`<`void`>
53
+
54
+ ***
55
+
56
+ ### getPool()[​](#getpool "Direct link to getPool()")
57
+
58
+ ```ts
59
+ getPool(
60
+ key: string,
61
+ perPoolConfig: Partial<LakebasePoolConfig>,
62
+ tokenFingerprint?: string): Pool;
63
+
64
+ ```
65
+
66
+ Get an existing pool or create a new one for the given key. When creating, merges `perPoolConfig` with the base config passed to the factory.
67
+
68
+ If `tokenFingerprint` is provided and differs from the cached pool's fingerprint, the stale pool is closed and a fresh one is created with the new config (including the updated `workspaceClient`).
69
+
70
+ #### Parameters[​](#parameters-1 "Direct link to Parameters")
71
+
72
+ | Parameter | Type |
73
+ | ------------------- | ------------------------------------------------------------------------------------------ |
74
+ | `key` | `string` |
75
+ | `perPoolConfig` | `Partial`<[`LakebasePoolConfig`](./docs/api/appkit/Interface.LakebasePoolConfig.md)> |
76
+ | `tokenFingerprint?` | `string` |
77
+
78
+ #### Returns[​](#returns-2 "Direct link to Returns")
79
+
80
+ `Pool`
81
+
82
+ ***
83
+
84
+ ### hasPool()[​](#haspool "Direct link to hasPool()")
85
+
86
+ ```ts
87
+ hasPool(key: string): boolean;
88
+
89
+ ```
90
+
91
+ Check whether a pool exists for the given key.
92
+
93
+ #### Parameters[​](#parameters-2 "Direct link to Parameters")
94
+
95
+ | Parameter | Type |
96
+ | --------- | -------- |
97
+ | `key` | `string` |
98
+
99
+ #### Returns[​](#returns-3 "Direct link to Returns")
100
+
101
+ `boolean`
@@ -52,7 +52,9 @@ Documentation merge entry for Typedoc — combines the stable `@databricks/appki
52
52
  | [JobAPI](./docs/api/appkit/Interface.JobAPI.md) | User-facing API for a single configured job. |
53
53
  | [JobConfig](./docs/api/appkit/Interface.JobConfig.md) | Per-job configuration options. |
54
54
  | [JobsConnectorConfig](./docs/api/appkit/Interface.JobsConnectorConfig.md) | - |
55
+ | [LakebasePool](./docs/api/appkit/Interface.LakebasePool.md) | Subset of `pg.Pool` exposed by the Lakebase plugin. |
55
56
  | [LakebasePoolConfig](./docs/api/appkit/Interface.LakebasePoolConfig.md) | Configuration for creating a Lakebase connection pool |
57
+ | [LakebasePoolManager](./docs/api/appkit/Interface.LakebasePoolManager.md) | Manages multiple Lakebase connection pools keyed by an identifier (e.g. userId). |
56
58
  | [McpConnectAllResult](./docs/api/appkit/Interface.McpConnectAllResult.md) | Per-endpoint outcome of [AppKitMcpClient.connectAll](./docs/api/appkit/Class.AppKitMcpClient.md#connectall). Callers (the agents plugin in particular) use the split to warn at startup when some MCP servers are unreachable without aborting boot for the rest. |
57
59
  | [Message](./docs/api/appkit/Interface.Message.md) | - |
58
60
  | [PluginManifest](./docs/api/appkit/Interface.PluginManifest.md) | Plugin manifest that declares metadata and resource requirements. Attached to plugin classes as a static property. Extends the shared PluginManifest with strict resource types. |
@@ -124,6 +126,7 @@ Documentation merge entry for Typedoc — combines the stable `@databricks/appki
124
126
  | [createAgent](./docs/api/appkit/Function.createAgent.md) | Pure factory for agent definitions. Returns the passed-in definition after cycle-detecting the sub-agent graph. Accepts the full `AgentDefinition` shape and is safe to call at module top-level. |
125
127
  | [createApp](./docs/api/appkit/Function.createApp.md) | Bootstraps AppKit with the provided configuration. |
126
128
  | [createLakebasePool](./docs/api/appkit/Function.createLakebasePool.md) | Create a Lakebase pool with appkit's logger integration. Telemetry automatically uses appkit's OpenTelemetry configuration via global registry. |
129
+ | [createLakebasePoolManager](./docs/api/appkit/Function.createLakebasePoolManager.md) | Create a pool manager that maintains per-key Lakebase connection pools. |
127
130
  | [defineTool](./docs/api/appkit/Function.defineTool.md) | Defines a single tool entry for a plugin's internal registry. |
128
131
  | [executeFromRegistry](./docs/api/appkit/Function.executeFromRegistry.md) | Validates tool-call arguments against the entry's schema and invokes its handler. On validation failure, returns an LLM-friendly error string (matching the behavior of `tool()`) rather than throwing, so the model can self-correct on its next turn. |
129
132
  | [extractServingEndpoints](./docs/api/appkit/Function.extractServingEndpoints.md) | Extract serving endpoint config from a server file by AST-parsing it. Looks for `serving({ endpoints: { alias: { env: "..." }, ... } })` calls and extracts the endpoint alias names and their environment variable mappings. |
@@ -51,6 +51,12 @@ The `plugin.execute` span created by the execution interceptor chain includes th
51
51
 
52
52
  These attributes are automatically added when your plugin uses `execute()` or `executeStream()`. All built-in plugins use these methods for their OBO operations. Custom plugins should do the same to get automatic telemetry instrumentation.
53
53
 
54
+ ## Lakebase per-user connections[​](#lakebase-per-user-connections "Direct link to Lakebase per-user connections")
55
+
56
+ The Lakebase plugin uses a different mechanism for `asUser(req)`: instead of swapping the `WorkspaceClient` via AsyncLocalStorage, it creates a **separate `pg.Pool` per user**, each with its own OAuth token refresh. This is necessary because PostgreSQL connections are authenticated at connection time — the pool itself is the authentication boundary.
57
+
58
+ See [Lakebase plugin — per-user connections](./docs/plugins/lakebase.md#on-behalf-of-obo--per-user-connections) for details.
59
+
54
60
  ## Development mode behavior[​](#development-mode-behavior "Direct link to Development mode behavior")
55
61
 
56
62
  In local development (`NODE_ENV=development`), if `asUser(req)` is called without a user token, it logs a warning and skips user impersonation — the operation runs with the default credentials configured for the app instead. The telemetry span will show `execution.context: "service"` with `execution.obo_dev_fallback: true` to distinguish these from regular service principal calls.
@@ -115,6 +115,95 @@ await createApp({
115
115
 
116
116
  ```
117
117
 
118
+ ## On-Behalf-Of (OBO) — per-user connections[​](#on-behalf-of-obo--per-user-connections "Direct link to On-Behalf-Of (OBO) — per-user connections")
119
+
120
+ When your app needs Row-Level Security (RLS) or per-user data isolation, use `asUser(req)` to execute queries using a per-user Lakebase connection pool. Each user's pool is authenticated with their Databricks identity, so PostgreSQL's `current_user` reflects the actual user.
121
+
122
+ ### Prerequisites[​](#prerequisites-1 "Direct link to Prerequisites")
123
+
124
+ 1. **Enable user authorization** in your Databricks App with the **`postgres`** scope. See [User authorization](https://docs.databricks.com/aws/en/dev-tools/databricks-apps/auth#user-authorization) for setup instructions. In your `databricks.yml`:
125
+
126
+ ```yaml
127
+ resources:
128
+ apps:
129
+ app:
130
+ user_api_scopes:
131
+ - postgres
132
+
133
+ ```
134
+
135
+ Apps scaffolded with `databricks apps init` and the Lakebase plugin include this automatically.
136
+
137
+ 2. Each app user needs a **Postgres role** in Lakebase. Create one with the Databricks CLI:
138
+
139
+ ```bash
140
+ databricks postgres create-role "projects/{project_id}/branches/{branch_id}" \
141
+ --json '{"spec": {"identity_type": "USER", "postgres_role": "user@example.com"}}'
142
+
143
+ ```
144
+
145
+ Alternatively, create roles in the Lakebase UI under **Branch Overview** → **Add role**.
146
+
147
+ note
148
+
149
+ Do not grant `databricks_superuser` to OBO users — superusers bypass RLS. Use [fine-grained grants](#fine-grained-permissions) instead.
150
+
151
+ ### Usage[​](#usage "Direct link to Usage")
152
+
153
+ No configuration needed — just call `asUser(req)`:
154
+
155
+ ```ts
156
+ const AppKit = await createApp({
157
+ plugins: [server(), lakebase()],
158
+ });
159
+
160
+ // Service principal query (default — bypasses RLS as table owner)
161
+ const all = await AppKit.lakebase.query("SELECT * FROM app.orders");
162
+
163
+ // User-scoped query (per-user pool, RLS enforced)
164
+ app.get("/api/my-orders", async (req, res) => {
165
+ const result = await AppKit.lakebase
166
+ .asUser(req)
167
+ .query("SELECT * FROM app.orders ORDER BY created_at DESC");
168
+ res.json(result.rows);
169
+ });
170
+
171
+ ```
172
+
173
+ When `asUser(req)` is called:
174
+
175
+ 1. The user's token and identity are extracted from `x-forwarded-access-token` and `x-forwarded-email` headers (set automatically by Databricks Apps).
176
+ 2. A per-user `pg.Pool` is created (or reused) with the user's OAuth credentials.
177
+ 3. `query()` and `pool` use the user's pool — `current_user` in PostgreSQL reflects the user's identity.
178
+
179
+ ### Row-Level Security example[​](#row-level-security-example "Direct link to Row-Level Security example")
180
+
181
+ ```sql
182
+ -- As the service principal (during app setup):
183
+ ALTER TABLE app.orders ENABLE ROW LEVEL SECURITY;
184
+
185
+ CREATE POLICY user_orders ON app.orders
186
+ FOR ALL TO PUBLIC
187
+ USING (owner = current_user);
188
+
189
+ -- Grant access so OBO users can query
190
+ GRANT USAGE ON SCHEMA app TO PUBLIC;
191
+ GRANT SELECT, INSERT ON ALL TABLES IN SCHEMA app TO PUBLIC;
192
+
193
+ ```
194
+
195
+ ### How it works[​](#how-it-works "Direct link to How it works")
196
+
197
+ * The **service principal pool** (`AppKit.lakebase.pool`) is always created and used for DDL operations, seeding, and admin queries.
198
+ * **Per-user pools** are created on the first `asUser(req)` call and cached by user identity. Each pool has its own OAuth token refresh cycle.
199
+ * Idle connections within per-user pools close automatically (30s idle timeout). Empty pool objects are cleaned up periodically.
200
+ * On shutdown, all pools (SP + user) are closed gracefully.
201
+ * In development mode (`NODE_ENV=development`), if no user token is available, `asUser(req)` falls back to the SP pool with a warning.
202
+
203
+ RLS and superusers
204
+
205
+ PostgreSQL superusers bypass Row-Level Security entirely. Users with the `databricks_superuser` role will see all rows regardless of RLS policies. For RLS enforcement, use [fine-grained grants](#fine-grained-permissions) instead of the superuser role.
206
+
118
207
  ## Database Permissions[​](#database-permissions "Direct link to Database Permissions")
119
208
 
120
209
  When you create the app with the Lakebase resource using the [Getting started](#getting-started-with-the-lakebase) guide, the Service Principal is automatically granted `CONNECT_AND_CREATE` permission on the `postgres` resource. This lets the Service Principal connect to the database and create new objects, but **not access any existing schemas or tables.**
@@ -125,15 +214,30 @@ To develop locally against a deployed Lakebase database:
125
214
 
126
215
  1. **Deploy the app first.** The Service Principal creates the database schema and tables on first deploy. Apps generated from `databricks apps init` handle this automatically - they check if tables exist on startup and skip creation if they do.
127
216
 
128
- 2. **Grant `databricks_superuser` via the Lakebase UI:**
217
+ 2. **Grant `databricks_superuser`** (skip if you are the Lakebase project owner — you already have full access):
218
+
219
+ ```bash
220
+ # Create a new role with databricks_superuser
221
+ databricks postgres create-role "projects/{project_id}/branches/{branch_id}" \
222
+ --json '{"spec": {"identity_type": "USER", "postgres_role": "user@example.com", "membership_roles": ["DATABRICKS_SUPERUSER"]}}'
129
223
 
130
- 1. Open the Lakebase Autoscaling UI and navigate to your project's **Branch Overview** page.
131
- 2. Click **Add role** (or **Edit role** if your OAuth role already exists).
132
- 3. Select your Databricks identity as the principal and check the **`databricks_superuser`** system role.
224
+ ```
225
+
226
+ To grant superuser to an existing role, use [`update-role`](https://docs.databricks.com/aws/en/dev-tools/cli/reference/postgres-commands#databricks-postgres-update-role):
227
+
228
+ ```bash
229
+ databricks postgres update-role \
230
+ "projects/{project_id}/branches/{branch_id}/roles/{role_id}" \
231
+ "spec.membership_roles" \
232
+ --json '{"spec": {"membership_roles": ["DATABRICKS_SUPERUSER"]}}'
233
+
234
+ ```
235
+
236
+ Alternatively, you can manage roles in the Lakebase Autoscaling UI under your project's **Branch Overview** page → **Add role** / **Edit role**.
133
237
 
134
238
  3. **Run locally** - your Databricks user identity (email) is used for OAuth authentication. The `databricks_superuser` role gives full **DML access** (read/write data) but **not DDL** (creating schemas or tables) - that's why deploying first matters (see note below).
135
239
 
136
- For other users, use the same **Add role** flow in the Lakebase UI to create an OAuth role with `databricks_superuser` for each user.
240
+ For other users, repeat step 2 to create an OAuth role with `databricks_superuser` for each user.
137
241
 
138
242
  tip
139
243
 
@@ -141,7 +245,9 @@ tip
141
245
 
142
246
  Why deploy first?
143
247
 
144
- When the app is deployed, the Service Principal creates schemas and tables and becomes their owner. A `databricks_superuser` has full **DML access** (SELECT, INSERT, UPDATE, DELETE) to these objects, but **cannot run DDL** (CREATE SCHEMA, CREATE TABLE) on schemas owned by the Service Principal. Deploying first ensures all objects exist before local development begins.
248
+ When the app is deployed, the Service Principal creates schemas and tables and becomes their owner. `databricks_superuser` gives full DML access (read/write) but not DDL, so local development works only after the schema exists.
249
+
250
+ If you run `npm run dev` first, your credentials own the schema and the deployed app hits `permission denied`. To recover, export any data first (`pg_dump` or a temporary schema copy), then drop the schema and redeploy. After redeploying, the Service Principal recreates the schema on startup. (PostgreSQL schema ownership is tied to the role that created it and cannot be reassigned by regular users.)
145
251
 
146
252
  ### Fine-grained permissions[​](#fine-grained-permissions "Direct link to Fine-grained permissions")
147
253
 
package/llms.txt CHANGED
@@ -83,6 +83,7 @@ npx @databricks/appkit docs <query>
83
83
  - [Function: createAgent()](./docs/api/appkit/Function.createAgent.md): Pure factory for agent definitions. Returns the passed-in definition after
84
84
  - [Function: createApp()](./docs/api/appkit/Function.createApp.md): Bootstraps AppKit with the provided configuration.
85
85
  - [Function: createLakebasePool()](./docs/api/appkit/Function.createLakebasePool.md): Create a Lakebase pool with appkit's logger integration.
86
+ - [Function: createLakebasePoolManager()](./docs/api/appkit/Function.createLakebasePoolManager.md): Create a pool manager that maintains per-key Lakebase connection pools.
86
87
  - [Function: defineTool()](./docs/api/appkit/Function.defineTool.md): Defines a single tool entry for a plugin's internal registry.
87
88
  - [Function: executeFromRegistry()](./docs/api/appkit/Function.executeFromRegistry.md): Validates tool-call arguments against the entry's schema and invokes its
88
89
  - [Function: extractServingEndpoints()](./docs/api/appkit/Function.extractServingEndpoints.md): Extract serving endpoint config from a server file by AST-parsing it.
@@ -128,7 +129,9 @@ npx @databricks/appkit docs <query>
128
129
  - [Interface: JobAPI](./docs/api/appkit/Interface.JobAPI.md): User-facing API for a single configured job.
129
130
  - [Interface: JobConfig](./docs/api/appkit/Interface.JobConfig.md): Per-job configuration options.
130
131
  - [Interface: JobsConnectorConfig](./docs/api/appkit/Interface.JobsConnectorConfig.md): Properties
132
+ - [Interface: LakebasePool](./docs/api/appkit/Interface.LakebasePool.md): Subset of pg.Pool exposed by the Lakebase plugin.
131
133
  - [Interface: LakebasePoolConfig](./docs/api/appkit/Interface.LakebasePoolConfig.md): Configuration for creating a Lakebase connection pool
134
+ - [Interface: LakebasePoolManager](./docs/api/appkit/Interface.LakebasePoolManager.md): Manages multiple Lakebase connection pools keyed by an identifier (e.g. userId).
132
135
  - [Interface: McpConnectAllResult](./docs/api/appkit/Interface.McpConnectAllResult.md): Per-endpoint outcome of AppKitMcpClient.connectAll. Callers (the
133
136
  - [Interface: Message](./docs/api/appkit/Interface.Message.md): Properties
134
137
  - [Interface: PluginManifest<TName>](./docs/api/appkit/Interface.PluginManifest.md): Plugin manifest that declares metadata and resource requirements.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@databricks/appkit-ui",
3
3
  "type": "module",
4
- "version": "0.34.1",
4
+ "version": "0.35.0",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
7
7
  "type": "git",
package/sbom.cdx.json CHANGED
@@ -1 +1 @@
1
- {"bomFormat":"CycloneDX","specVersion":"1.6","serialNumber":"urn:uuid:77343d34-d687-44e8-993f-aa2008d883c4","version":1,"metadata":{"timestamp":"2026-05-13T18:55:57Z","tools":{"components":[{"group":"@cyclonedx","name":"cdxgen","version":"12.1.2","purl":"pkg:npm/%40cyclonedx/cdxgen@12.1.2","type":"application","bom-ref":"pkg:npm/@cyclonedx/cdxgen@12.1.2","publisher":"OWASP Foundation","authors":[{"name":"OWASP Foundation"}]}]},"authors":[{"name":"OWASP Foundation"}],"lifecycles":[{"phase":"build"}],"component":{"name":"appkit-ui","group":"@databricks","version":"0.34.1","purl":"pkg:npm/%40databricks/appkit-ui@0.34.1","bom-ref":"pkg:npm/@databricks/appkit-ui@0.34.1","type":"application","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"externalReferences":[{"type":"vcs","url":"git+https://github.com/databricks/appkit.git"}]},"properties":[{"name":"cdx:bom:componentTypes","value":"npm"},{"name":"cdx:bom:componentNamespaces","value":"@radix-ui\\n@tanstack"},{"name":"cdx:bom:componentSrcFiles","value":"packages/appkit-ui/node_modules/@radix-ui/react-accordion/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-alert-dialog/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-aspect-ratio/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-avatar/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-checkbox/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-collapsible/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-context-menu/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-dialog/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-dropdown-menu/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-hover-card/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-label/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-menubar/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-navigation-menu/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-popover/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-progress/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-radio-group/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-scroll-area/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-select/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-separator/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-slider/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-slot/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-switch/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-tabs/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-toggle-group/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-toggle/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-tooltip/package.json\\npackages/appkit-ui/node_modules/@tanstack/react-table/package.json\\npackages/appkit-ui/node_modules/apache-arrow/package.json\\npackages/appkit-ui/node_modules/class-variance-authority/package.json\\npackages/appkit-ui/node_modules/clsx/package.json\\npackages/appkit-ui/node_modules/cmdk/package.json\\npackages/appkit-ui/node_modules/dompurify/package.json\\npackages/appkit-ui/node_modules/echarts-for-react/package.json\\npackages/appkit-ui/node_modules/echarts/package.json\\npackages/appkit-ui/node_modules/embla-carousel-react/package.json\\npackages/appkit-ui/node_modules/input-otp/package.json\\npackages/appkit-ui/node_modules/lucide-react/package.json\\npackages/appkit-ui/node_modules/marked/package.json\\npackages/appkit-ui/node_modules/next-themes/package.json\\npackages/appkit-ui/node_modules/react-day-picker/package.json\\npackages/appkit-ui/node_modules/react-hook-form/package.json\\npackages/appkit-ui/node_modules/react-resizable-panels/package.json\\npackages/appkit-ui/node_modules/react/package.json\\npackages/appkit-ui/node_modules/recharts/package.json\\npackages/appkit-ui/node_modules/shared/package.json\\npackages/appkit-ui/node_modules/sonner/package.json\\npackages/appkit-ui/node_modules/tailwind-merge/package.json\\npackages/appkit-ui/node_modules/vaul/package.json"}]},"components":[{"group":"@radix-ui","name":"react-accordion","version":"1.2.12","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-accordion@1.2.12","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-accordion@1.2.12","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-accordion/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-accordion"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-accordion/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-accordion/package.json"}],"occurrences":[{"location":"dist/react/ui/accordion.js#4"},{"location":"tmp/dist/react/ui/accordion.js#4"},{"location":"src/react/ui/accordion.tsx#2"}]}},{"group":"@radix-ui","name":"react-alert-dialog","version":"1.1.15","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-alert-dialog@1.1.15","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-alert-dialog@1.1.15","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-alert-dialog/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-alert-dialog"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-alert-dialog/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-alert-dialog/package.json"}],"occurrences":[{"location":"dist/react/ui/alert-dialog.js#5"},{"location":"tmp/dist/react/ui/alert-dialog.js#5"},{"location":"src/react/ui/alert-dialog.tsx#2"}]}},{"group":"@radix-ui","name":"react-aspect-ratio","version":"1.1.8","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-aspect-ratio@1.1.8","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-aspect-ratio@1.1.8","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-aspect-ratio/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-aspect-ratio"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-aspect-ratio/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-aspect-ratio/package.json"}],"occurrences":[{"location":"dist/react/ui/aspect-ratio.js#4"},{"location":"tmp/dist/react/ui/aspect-ratio.js#4"},{"location":"src/react/ui/aspect-ratio.tsx#3"}]}},{"group":"@radix-ui","name":"react-avatar","version":"1.1.11","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-avatar@1.1.11","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-avatar@1.1.11","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-avatar/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-avatar"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-avatar/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-avatar/package.json"}],"occurrences":[{"location":"dist/react/ui/avatar.js#3"},{"location":"tmp/dist/react/ui/avatar.js#3"},{"location":"src/react/ui/avatar.tsx#2"}]}},{"group":"@radix-ui","name":"react-checkbox","version":"1.3.3","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-checkbox@1.3.3","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-checkbox@1.3.3","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-checkbox/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-checkbox"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-checkbox/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-checkbox/package.json"}],"occurrences":[{"location":"dist/react/ui/checkbox.js#6"},{"location":"tmp/dist/react/ui/checkbox.js#6"},{"location":"src/react/ui/checkbox.tsx#4"}]}},{"group":"@radix-ui","name":"react-collapsible","version":"1.1.12","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-collapsible@1.1.12","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-collapsible@1.1.12","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-collapsible/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-collapsible"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-collapsible/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-collapsible/package.json"}],"occurrences":[{"location":"dist/react/ui/collapsible.js#2"},{"location":"tmp/dist/react/ui/collapsible.js#2"},{"location":"src/react/ui/collapsible.tsx#1"}]}},{"group":"@radix-ui","name":"react-context-menu","version":"2.2.16","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-context-menu@2.2.16","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-context-menu@2.2.16","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-context-menu/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-context-menu"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-context-menu/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-context-menu/package.json"}],"occurrences":[{"location":"dist/react/ui/context-menu.js#7"},{"location":"tmp/dist/react/ui/context-menu.js#7"},{"location":"src/react/ui/context-menu.tsx#4"}]}},{"group":"@radix-ui","name":"react-dialog","version":"1.1.15","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-dialog@1.1.15","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-dialog@1.1.15","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-dialog/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-dialog"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-dialog/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-dialog/package.json"}],"occurrences":[{"location":"dist/react/ui/dialog.js#5"},{"location":"dist/react/ui/sheet.js#5"},{"location":"tmp/dist/react/ui/dialog.js#5"},{"location":"tmp/dist/react/ui/sheet.js#5"},{"location":"src/react/ui/dialog.tsx#2"},{"location":"src/react/ui/sheet.tsx#2"}]}},{"group":"@radix-ui","name":"react-dropdown-menu","version":"2.1.16","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-dropdown-menu@2.1.16","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-dropdown-menu@2.1.16","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-dropdown-menu/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-dropdown-menu"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-dropdown-menu/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-dropdown-menu/package.json"}],"occurrences":[{"location":"dist/react/ui/dropdown-menu.js#5"},{"location":"tmp/dist/react/ui/dropdown-menu.js#5"},{"location":"src/react/ui/dropdown-menu.tsx#2"}]}},{"group":"@radix-ui","name":"react-hover-card","version":"1.1.15","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-hover-card@1.1.15","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-hover-card@1.1.15","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-hover-card/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-hover-card"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-hover-card/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-hover-card/package.json"}],"occurrences":[{"location":"dist/react/ui/hover-card.js#6"},{"location":"tmp/dist/react/ui/hover-card.js#6"},{"location":"src/react/ui/hover-card.tsx#4"}]}},{"group":"@radix-ui","name":"react-label","version":"2.1.8","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-label@2.1.8","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-label@2.1.8","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-label/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-label"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-label/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-label/package.json"}],"occurrences":[{"location":"dist/react/ui/label.js#5"},{"location":"tmp/dist/react/ui/label.js#5"},{"location":"src/react/ui/form.tsx#4"},{"location":"src/react/ui/label.tsx#4"}]}},{"group":"@radix-ui","name":"react-menubar","version":"1.1.16","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-menubar@1.1.16","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-menubar@1.1.16","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-menubar/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-menubar"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-menubar/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-menubar/package.json"}],"occurrences":[{"location":"dist/react/ui/menubar.js#5"},{"location":"tmp/dist/react/ui/menubar.js#5"},{"location":"src/react/ui/menubar.tsx#2"}]}},{"group":"@radix-ui","name":"react-navigation-menu","version":"1.2.14","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-navigation-menu@1.2.14","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-navigation-menu@1.2.14","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-navigation-menu/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-navigation-menu"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-navigation-menu/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-navigation-menu/package.json"}],"occurrences":[{"location":"dist/react/ui/navigation-menu.js#5"},{"location":"tmp/dist/react/ui/navigation-menu.js#5"},{"location":"src/react/ui/navigation-menu.tsx#2"}]}},{"group":"@radix-ui","name":"react-popover","version":"1.1.15","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-popover@1.1.15","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-popover@1.1.15","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-popover/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-popover"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-popover/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-popover/package.json"}],"occurrences":[{"location":"dist/react/ui/popover.js#6"},{"location":"tmp/dist/react/ui/popover.js#6"},{"location":"src/react/ui/popover.tsx#4"}]}},{"group":"@radix-ui","name":"react-progress","version":"1.1.8","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-progress@1.1.8","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-progress@1.1.8","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-progress/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-progress"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-progress/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-progress/package.json"}],"occurrences":[{"location":"dist/react/ui/progress.js#3"},{"location":"tmp/dist/react/ui/progress.js#3"},{"location":"src/react/ui/progress.tsx#2"}]}},{"group":"@radix-ui","name":"react-radio-group","version":"1.3.8","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-radio-group@1.3.8","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-radio-group@1.3.8","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-radio-group/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-radio-group"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-radio-group/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-radio-group/package.json"}],"occurrences":[{"location":"dist/react/ui/radio-group.js#6"},{"location":"tmp/dist/react/ui/radio-group.js#6"},{"location":"src/react/ui/radio-group.tsx#4"}]}},{"group":"@radix-ui","name":"react-scroll-area","version":"1.2.10","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-scroll-area@1.2.10","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-scroll-area@1.2.10","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-scroll-area/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-scroll-area"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-scroll-area/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-scroll-area/package.json"}],"occurrences":[{"location":"dist/react/ui/scroll-area.js#5"},{"location":"tmp/dist/react/ui/scroll-area.js#5"},{"location":"src/react/ui/scroll-area.tsx#4"}]}},{"group":"@radix-ui","name":"react-select","version":"2.2.6","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-select@2.2.6","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-select@2.2.6","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-select/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-select"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-select/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-select/package.json"}],"occurrences":[{"location":"dist/react/ui/select.js#5"},{"location":"tmp/dist/react/ui/select.js#5"},{"location":"src/react/ui/select.tsx#2"}]}},{"group":"@radix-ui","name":"react-separator","version":"1.1.8","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-separator@1.1.8","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-separator@1.1.8","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-separator/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-separator"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-separator/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-separator/package.json"}],"occurrences":[{"location":"dist/react/ui/separator.js#5"},{"location":"tmp/dist/react/ui/separator.js#5"},{"location":"src/react/ui/separator.tsx#4"}]}},{"group":"@radix-ui","name":"react-slider","version":"1.3.6","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-slider@1.3.6","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-slider@1.3.6","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-slider/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-slider"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-slider/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-slider/package.json"}],"occurrences":[{"location":"dist/react/ui/slider.js#6"},{"location":"tmp/dist/react/ui/slider.js#6"},{"location":"src/react/ui/slider.tsx#4"}]}},{"group":"@radix-ui","name":"react-slot","version":"1.2.4","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-slot@1.2.4","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-slot@1.2.4","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-slot/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-slot,Slot,@radix-ui/react-slot/Slot"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-slot/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-slot/package.json"}],"occurrences":[{"location":"dist/react/ui/badge.js#3"},{"location":"dist/react/ui/breadcrumb.js#4"},{"location":"dist/react/ui/button-group.js#4"},{"location":"dist/react/ui/button.js#3"},{"location":"dist/react/ui/form.js#7"},{"location":"dist/react/ui/item.js#4"},{"location":"dist/react/ui/sidebar.js#14"},{"location":"tmp/dist/react/ui/badge.js#3"},{"location":"tmp/dist/react/ui/breadcrumb.js#4"},{"location":"tmp/dist/react/ui/button-group.js#4"},{"location":"tmp/dist/react/ui/button.js#3"},{"location":"tmp/dist/react/ui/form.js#7"},{"location":"tmp/dist/react/ui/item.js#4"},{"location":"tmp/dist/react/ui/sidebar.js#14"},{"location":"src/react/ui/badge.tsx#2"},{"location":"src/react/ui/breadcrumb.tsx#2"},{"location":"src/react/ui/button-group.tsx#1"},{"location":"src/react/ui/button.tsx#2"},{"location":"src/react/ui/form.tsx#5"},{"location":"src/react/ui/item.tsx#2"},{"location":"src/react/ui/sidebar.tsx#4"}]}},{"group":"@radix-ui","name":"react-switch","version":"1.2.6","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-switch@1.2.6","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-switch@1.2.6","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-switch/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-switch"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-switch/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-switch/package.json"}],"occurrences":[{"location":"dist/react/ui/switch.js#5"},{"location":"tmp/dist/react/ui/switch.js#5"},{"location":"src/react/ui/switch.tsx#4"}]}},{"group":"@radix-ui","name":"react-tabs","version":"1.1.13","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-tabs@1.1.13","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-tabs@1.1.13","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-tabs/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-tabs"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-tabs/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-tabs/package.json"}],"occurrences":[{"location":"dist/react/ui/tabs.js#5"},{"location":"tmp/dist/react/ui/tabs.js#5"},{"location":"src/react/ui/tabs.tsx#4"}]}},{"group":"@radix-ui","name":"react-toggle-group","version":"1.1.11","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-toggle-group@1.1.11","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-toggle-group@1.1.11","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-toggle-group/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-toggle-group"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-toggle-group/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-toggle-group/package.json"}],"occurrences":[{"location":"dist/react/ui/toggle-group.js#5"},{"location":"tmp/dist/react/ui/toggle-group.js#5"},{"location":"src/react/ui/toggle-group.tsx#2"}]}},{"group":"@radix-ui","name":"react-toggle","version":"1.1.10","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-toggle@1.1.10","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-toggle@1.1.10","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-toggle/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-toggle"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-toggle/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-toggle/package.json"}],"occurrences":[{"location":"dist/react/ui/toggle.js#4"},{"location":"tmp/dist/react/ui/toggle.js#4"},{"location":"src/react/ui/toggle.tsx#2"}]}},{"group":"@radix-ui","name":"react-tooltip","version":"1.2.8","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-tooltip@1.2.8","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-tooltip@1.2.8","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-tooltip/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-tooltip"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-tooltip/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-tooltip/package.json"}],"occurrences":[{"location":"dist/react/ui/tooltip.js#6"},{"location":"tmp/dist/react/ui/tooltip.js#6"},{"location":"src/react/ui/tooltip.tsx#4"}]}},{"authors":[{"name":"Tanner Linsley"}],"group":"@tanstack","name":"react-table","version":"8.21.3","description":"Headless UI for building powerful tables & datagrids for React.","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40tanstack/react-table@8.21.3","externalReferences":[{"type":"website","url":"https://tanstack.com/table"},{"type":"vcs","url":"https://github.com/TanStack/table.git"}],"type":"library","bom-ref":"pkg:npm/@tanstack/react-table@8.21.3","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@tanstack/react-table/package.json"},{"name":"ImportedModules","value":"@tanstack/react-table,flexRender,@tanstack/react-table/flexRender,getCoreRowModel,@tanstack/react-table/getCoreRowModel,getFilteredRowModel,@tanstack/react-table/getFilteredRowModel,getPaginationRowModel,@tanstack/react-table/getPaginationRowModel,getSortedRowModel,@tanstack/react-table/getSortedRowModel,useReactTable,@tanstack/react-table/useReactTable,RowSelectionState,@tanstack/react-table/RowSelectionState,Table,@tanstack/react-table/Table,Column,@tanstack/react-table/Column,ColumnFiltersState,@tanstack/react-table/ColumnFiltersState,@tanstack/react-table/Row,SortingState,@tanstack/react-table/SortingState,VisibilityState,@tanstack/react-table/VisibilityState"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@tanstack/react-table/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@tanstack/react-table/package.json"}],"occurrences":[{"location":"dist/react/table/data-table.js#10"},{"location":"dist/react/table/table-wrapper.js#12"},{"location":"tmp/dist/react/table/data-table.js#10"},{"location":"tmp/dist/react/table/table-wrapper.js#12"},{"location":"src/react/table/types.ts#1"},{"location":"src/react/table/data-table.tsx#1"},{"location":"src/react/table/table-wrapper.tsx#14"}]}},{"authors":[{"name":"Apache Software Foundation"}],"group":"","name":"apache-arrow","version":"21.1.0","description":"Apache Arrow columnar in-memory format","scope":"required","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:npm/apache-arrow@21.1.0","externalReferences":[{"type":"website","url":"https://arrow.apache.org/js/"},{"type":"vcs","url":"git+https://github.com/apache/arrow-js.git"}],"type":"library","bom-ref":"pkg:npm/apache-arrow@21.1.0","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/apache-arrow/package.json"},{"name":"ImportedModules","value":"apache-arrow,Field,apache-arrow/Field,Table,apache-arrow/Table"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/apache-arrow/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/apache-arrow/package.json"}],"occurrences":[{"location":"src/js/arrow/arrow-client.ts#1"},{"location":"src/react/charts/normalize.ts#1"},{"location":"src/react/charts/types.ts#1"},{"location":"src/react/hooks/types.ts#1"},{"location":"src/react/hooks/use-chart-data.ts#1"}]}},{"authors":[{"name":"Joe Bell (https://joebell.co.uk)"}],"group":"","name":"class-variance-authority","version":"0.7.1","description":"Class Variance Authority 🧬","scope":"required","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:npm/class-variance-authority@0.7.1","externalReferences":[{"type":"vcs","url":"https://github.com/joe-bell/cva#readme"}],"type":"library","bom-ref":"pkg:npm/class-variance-authority@0.7.1","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/class-variance-authority/package.json"},{"name":"ImportedModules","value":"class-variance-authority,class-variance-authority/cva,VariantProps,class-variance-authority/VariantProps"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/class-variance-authority/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/class-variance-authority/package.json"}],"occurrences":[{"location":"dist/react/ui/alert.js#3"},{"location":"dist/react/ui/badge.js#4"},{"location":"dist/react/ui/button-group.js#5"},{"location":"dist/react/ui/button.js#4"},{"location":"dist/react/ui/empty.js#3"},{"location":"dist/react/ui/field.js#6"},{"location":"dist/react/ui/input-group.js#8"},{"location":"dist/react/ui/item.js#5"},{"location":"dist/react/ui/navigation-menu.js#4"},{"location":"dist/react/ui/sidebar.js#15"},{"location":"dist/react/ui/toggle.js#3"},{"location":"tmp/dist/react/ui/alert.js#3"},{"location":"tmp/dist/react/ui/badge.js#4"},{"location":"tmp/dist/react/ui/button-group.js#5"},{"location":"tmp/dist/react/ui/button.js#4"},{"location":"tmp/dist/react/ui/empty.js#3"},{"location":"tmp/dist/react/ui/field.js#6"},{"location":"tmp/dist/react/ui/input-group.js#8"},{"location":"tmp/dist/react/ui/item.js#5"},{"location":"tmp/dist/react/ui/navigation-menu.js#4"},{"location":"tmp/dist/react/ui/sidebar.js#15"},{"location":"tmp/dist/react/ui/toggle.js#3"},{"location":"src/react/ui/alert.tsx#2"},{"location":"src/react/ui/badge.tsx#3"},{"location":"src/react/ui/button-group.tsx#2"},{"location":"src/react/ui/button.tsx#3"},{"location":"src/react/ui/empty.tsx#1"},{"location":"src/react/ui/field.tsx#2"},{"location":"src/react/ui/input-group.tsx#4"},{"location":"src/react/ui/item.tsx#3"},{"location":"src/react/ui/navigation-menu.tsx#3"},{"location":"src/react/ui/sidebar.tsx#5"},{"location":"src/react/ui/toggle-group.tsx#3"},{"location":"src/react/ui/toggle.tsx#3"}]}},{"authors":[{"name":"Luke Edwards <luke.edwards05@gmail.com> (https://lukeed.com)"}],"group":"","name":"clsx","version":"2.1.1","description":"A tiny (239B) utility for constructing className strings conditionally.","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/clsx@2.1.1","type":"library","bom-ref":"pkg:npm/clsx@2.1.1","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/clsx/package.json"},{"name":"ImportedModules","value":"clsx,clsx/clsx,ClassValue,clsx/ClassValue"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/clsx/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/clsx/package.json"}],"occurrences":[{"location":"dist/react/lib/utils.js#1"},{"location":"tmp/dist/react/lib/utils.js#1"},{"location":"src/react/lib/utils.ts#1"}]}},{"authors":[{"name":"Paco (https://github.com/pacocoursey)"}],"group":"","name":"cmdk","version":"1.1.1","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/cmdk@1.1.1","externalReferences":[{"type":"vcs","url":"https://github.com/pacocoursey/cmdk#readme"},{"type":"vcs","url":"git+https://github.com/pacocoursey/cmdk.git"}],"type":"library","bom-ref":"pkg:npm/cmdk@1.1.1","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/cmdk/package.json"},{"name":"ImportedModules","value":"cmdk,Command,cmdk/Command"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/cmdk/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/cmdk/package.json"}],"occurrences":[{"location":"dist/react/ui/command.js#5"},{"location":"tmp/dist/react/ui/command.js#5"},{"location":"src/react/ui/command.tsx#2"}]}},{"authors":[{"name":"Dr.-Ing. Mario Heiderich"},{"name":" Cure53 <mario@cure53.de> (https://cure53.de/)"}],"group":"","name":"dompurify","version":"3.3.3","description":"DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. It's written in JavaScript and works in all modern browsers (Safari, Opera (15+), Internet Explorer (10+), Firefox and Chrome - as well as almost anything else using Blink or WebKit). DOMPurify is written by security people who have vast background in web attacks and XSS. Fear not.","scope":"required","licenses":[{"expression":"(MPL-2.0 OR Apache-2.0)"}],"purl":"pkg:npm/dompurify@3.3.3","externalReferences":[{"type":"vcs","url":"https://github.com/cure53/DOMPurify"},{"type":"vcs","url":"git://github.com/cure53/DOMPurify.git"}],"type":"library","bom-ref":"pkg:npm/dompurify@3.3.3","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/dompurify/package.json"},{"name":"ImportedModules","value":"dompurify"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/dompurify/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/dompurify/package.json"}],"occurrences":[{"location":"dist/react/genie/genie-chat-message.js#7"},{"location":"tmp/dist/react/genie/genie-chat-message.js#7"},{"location":"src/react/genie/genie-chat-message.tsx#1"}]},"tags":["security","web"]},{"authors":[{"name":"hustcc (http://github.com/hustcc)"}],"group":"","name":"echarts-for-react","version":"3.0.5","description":" Apache Echarts components for React.","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/echarts-for-react@3.0.5","externalReferences":[{"type":"vcs","url":"https://github.com/hustcc/echarts-for-react"},{"type":"vcs","url":"https://github.com/hustcc/echarts-for-react.git"}],"type":"library","bom-ref":"pkg:npm/echarts-for-react@3.0.5","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/echarts-for-react/package.json"},{"name":"ImportedModules","value":"echarts-for-react"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/echarts-for-react/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/echarts-for-react/package.json"}],"occurrences":[{"location":"dist/react/charts/base.js#4"},{"location":"tmp/dist/react/charts/base.js#4"},{"location":"src/react/charts/base.tsx#2"}]}},{"group":"","name":"echarts","version":"6.0.0","description":"Apache ECharts is a powerful, interactive charting and data visualization library for browser","scope":"required","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:npm/echarts@6.0.0","externalReferences":[{"type":"website","url":"https://echarts.apache.org"},{"type":"vcs","url":"git+https://github.com/apache/echarts.git"}],"type":"library","bom-ref":"pkg:npm/echarts@6.0.0","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/echarts/package.json"},{"name":"ImportedModules","value":"echarts,ECharts,echarts/ECharts"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/echarts/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/echarts/package.json"}],"occurrences":[{"location":"src/react/charts/base.tsx#1"}]}},{"authors":[{"name":"David Jerleke"}],"group":"","name":"embla-carousel-react","version":"8.6.0","description":"A lightweight carousel library with fluid motion and great swipe precision","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/embla-carousel-react@8.6.0","externalReferences":[{"type":"website","url":"https://www.embla-carousel.com"},{"type":"vcs","url":"git+https://github.com/davidjerleke/embla-carousel"}],"type":"library","bom-ref":"pkg:npm/embla-carousel-react@8.6.0","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/embla-carousel-react/package.json"},{"name":"ImportedModules","value":"embla-carousel-react,UseEmblaCarouselType,embla-carousel-react/UseEmblaCarouselType"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/embla-carousel-react/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/embla-carousel-react/package.json"}],"occurrences":[{"location":"dist/react/ui/carousel.js#6"},{"location":"tmp/dist/react/ui/carousel.js#6"},{"location":"src/react/ui/carousel.tsx#4"}]}},{"authors":[{"name":"Guilherme Rodz <g@rodz.dev>"}],"group":"","name":"input-otp","version":"1.4.2","description":"One-time password input component for React.","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/input-otp@1.4.2","externalReferences":[{"type":"website","url":"https://input-otp.rodz.dev/"},{"type":"vcs","url":"git+https://github.com/guilhermerodz/input-otp.git"}],"type":"library","bom-ref":"pkg:npm/input-otp@1.4.2","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/input-otp/package.json"},{"name":"ImportedModules","value":"input-otp,OTPInput,input-otp/OTPInput,OTPInputContext,input-otp/OTPInputContext"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/input-otp/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/input-otp/package.json"}],"occurrences":[{"location":"dist/react/ui/input-otp.js#5"},{"location":"tmp/dist/react/ui/input-otp.js#5"},{"location":"src/react/ui/input-otp.tsx#2"}]}},{"authors":[{"name":"Eric Fennis"}],"group":"","name":"lucide-react","version":"0.554.0","description":"A Lucide icon library package for React applications.","scope":"required","licenses":[{"license":{"id":"ISC","url":"https://opensource.org/licenses/ISC"}}],"purl":"pkg:npm/lucide-react@0.554.0","externalReferences":[{"type":"website","url":"https://lucide.dev"},{"type":"vcs","url":"https://github.com/lucide-icons/lucide.git"}],"type":"library","bom-ref":"pkg:npm/lucide-react@0.554.0","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/lucide-react/package.json"},{"name":"ImportedModules","value":"lucide-react,AlertCircle,lucide-react/AlertCircle,ArrowLeft,lucide-react/ArrowLeft,FileIcon,lucide-react/FileIcon,ChevronRight,lucide-react/ChevronRight,FolderIcon,lucide-react/FolderIcon,Download,lucide-react/Download,Loader2,lucide-react/Loader2,Trash2,lucide-react/Trash2,FolderPlus,lucide-react/FolderPlus,lucide-react/X,BarChart3Icon,lucide-react/BarChart3Icon,ChevronDownIcon,lucide-react/ChevronDownIcon,ChevronDown,lucide-react/ChevronDown,ArrowUpDown,lucide-react/ArrowUpDown,MoreHorizontal,lucide-react/MoreHorizontal,ChevronLeftIcon,lucide-react/ChevronLeftIcon,ChevronRightIcon,lucide-react/ChevronRightIcon,ArrowRight,lucide-react/ArrowRight,CheckIcon,lucide-react/CheckIcon,SearchIcon,lucide-react/SearchIcon,CircleIcon,lucide-react/CircleIcon,XIcon,lucide-react/XIcon,MinusIcon,lucide-react/MinusIcon,MoreHorizontalIcon,lucide-react/MoreHorizontalIcon,GripVerticalIcon,lucide-react/GripVerticalIcon,ChevronUpIcon,lucide-react/ChevronUpIcon,PanelLeftIcon,lucide-react/PanelLeftIcon,CircleCheckIcon,lucide-react/CircleCheckIcon,InfoIcon,lucide-react/InfoIcon,Loader2Icon,lucide-react/Loader2Icon,OctagonXIcon,lucide-react/OctagonXIcon,TriangleAlertIcon,lucide-react/TriangleAlertIcon"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/lucide-react/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/lucide-react/package.json"}],"occurrences":[{"location":"dist/react/file-browser/directory-list.js#6"},{"location":"dist/react/file-browser/file-entry.js#4"},{"location":"dist/react/file-browser/file-preview-panel.js#6"},{"location":"dist/react/file-browser/new-folder-input.js#5"},{"location":"dist/react/genie/genie-query-visualization.js#12"},{"location":"dist/react/table/data-table.js#9"},{"location":"dist/react/table/table-wrapper.js#11"},{"location":"dist/react/ui/accordion.js#3"},{"location":"dist/react/ui/breadcrumb.js#3"},{"location":"dist/react/ui/calendar.js#7"},{"location":"dist/react/ui/carousel.js#5"},{"location":"dist/react/ui/checkbox.js#5"},{"location":"dist/react/ui/command.js#4"},{"location":"dist/react/ui/context-menu.js#6"},{"location":"dist/react/ui/dialog.js#4"},{"location":"dist/react/ui/dropdown-menu.js#4"},{"location":"dist/react/ui/input-otp.js#4"},{"location":"dist/react/ui/menubar.js#4"},{"location":"dist/react/ui/navigation-menu.js#3"},{"location":"dist/react/ui/pagination.js#4"},{"location":"dist/react/ui/radio-group.js#5"},{"location":"dist/react/ui/resizable.js#3"},{"location":"dist/react/ui/select.js#4"},{"location":"dist/react/ui/sheet.js#4"},{"location":"dist/react/ui/sidebar.js#13"},{"location":"dist/react/ui/sonner.js#2"},{"location":"dist/react/ui/spinner.js#3"},{"location":"tmp/dist/react/file-browser/directory-list.js#6"},{"location":"tmp/dist/react/file-browser/file-entry.js#4"},{"location":"tmp/dist/react/file-browser/file-preview-panel.js#6"},{"location":"tmp/dist/react/file-browser/new-folder-input.js#5"},{"location":"tmp/dist/react/genie/genie-query-visualization.js#12"},{"location":"tmp/dist/react/table/data-table.js#9"},{"location":"tmp/dist/react/table/table-wrapper.js#11"},{"location":"tmp/dist/react/ui/accordion.js#3"},{"location":"tmp/dist/react/ui/breadcrumb.js#3"},{"location":"tmp/dist/react/ui/calendar.js#7"},{"location":"tmp/dist/react/ui/carousel.js#5"},{"location":"tmp/dist/react/ui/checkbox.js#5"},{"location":"tmp/dist/react/ui/command.js#4"},{"location":"tmp/dist/react/ui/context-menu.js#6"},{"location":"tmp/dist/react/ui/dialog.js#4"},{"location":"tmp/dist/react/ui/dropdown-menu.js#4"},{"location":"tmp/dist/react/ui/input-otp.js#4"},{"location":"tmp/dist/react/ui/menubar.js#4"},{"location":"tmp/dist/react/ui/navigation-menu.js#3"},{"location":"tmp/dist/react/ui/pagination.js#4"},{"location":"tmp/dist/react/ui/radio-group.js#5"},{"location":"tmp/dist/react/ui/resizable.js#3"},{"location":"tmp/dist/react/ui/select.js#4"},{"location":"tmp/dist/react/ui/sheet.js#4"},{"location":"tmp/dist/react/ui/sidebar.js#13"},{"location":"tmp/dist/react/ui/sonner.js#2"},{"location":"tmp/dist/react/ui/spinner.js#3"},{"location":"src/react/file-browser/directory-list.tsx#1"},{"location":"src/react/file-browser/file-entry.tsx#1"},{"location":"src/react/file-browser/file-preview-panel.tsx#1"},{"location":"src/react/file-browser/new-folder-input.tsx#1"},{"location":"src/react/genie/genie-query-visualization.tsx#1"},{"location":"src/react/table/data-table.tsx#2"},{"location":"src/react/table/table-wrapper.tsx#15"},{"location":"src/react/ui/accordion.tsx#3"},{"location":"src/react/ui/breadcrumb.tsx#3"},{"location":"src/react/ui/calendar.tsx#9"},{"location":"src/react/ui/carousel.tsx#5"},{"location":"src/react/ui/checkbox.tsx#5"},{"location":"src/react/ui/command.tsx#3"},{"location":"src/react/ui/context-menu.tsx#5"},{"location":"src/react/ui/dialog.tsx#3"},{"location":"src/react/ui/dropdown-menu.tsx#3"},{"location":"src/react/ui/input-otp.tsx#3"},{"location":"src/react/ui/menubar.tsx#3"},{"location":"src/react/ui/navigation-menu.tsx#4"},{"location":"src/react/ui/pagination.tsx#6"},{"location":"src/react/ui/radio-group.tsx#5"},{"location":"src/react/ui/resizable.tsx#2"},{"location":"src/react/ui/select.tsx#3"},{"location":"src/react/ui/sheet.tsx#3"},{"location":"src/react/ui/sidebar.tsx#6"},{"location":"src/react/ui/sonner.tsx#8"},{"location":"src/react/ui/spinner.tsx#2"}]}},{"authors":[{"name":"Christopher Jeffrey"}],"group":"","name":"marked","version":"17.0.3","description":"A markdown parser built for speed","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/marked@17.0.3","externalReferences":[{"type":"website","url":"https://marked.js.org"},{"type":"vcs","url":"git://github.com/markedjs/marked.git"}],"type":"library","bom-ref":"pkg:npm/marked@17.0.3","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/marked/package.json"},{"name":"ImportedModules","value":"marked,marked/marked"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/marked/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/marked/package.json"}],"occurrences":[{"location":"dist/react/genie/genie-chat-message.js#8"},{"location":"tmp/dist/react/genie/genie-chat-message.js#8"},{"location":"src/react/genie/genie-chat-message.tsx#2"}]}},{"group":"","name":"next-themes","version":"0.4.6","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/next-themes@0.4.6","externalReferences":[{"type":"vcs","url":"https://github.com/pacocoursey/next-themes.git"}],"type":"framework","bom-ref":"pkg:npm/next-themes@0.4.6","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/next-themes/package.json"},{"name":"ImportedModules","value":"next-themes,useTheme,next-themes/useTheme"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/next-themes/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/next-themes/package.json"}],"occurrences":[{"location":"dist/react/ui/sonner.js#3"},{"location":"tmp/dist/react/ui/sonner.js#3"},{"location":"src/react/ui/sonner.tsx#9"}]},"tags":["framework"]},{"authors":[{"name":"Giampaolo Bellavite <io@gpbl.dev>"}],"group":"","name":"react-day-picker","version":"9.12.0","description":"Customizable Date Picker for React","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/react-day-picker@9.12.0","externalReferences":[{"type":"website","url":"https://daypicker.dev"},{"type":"vcs","url":"https://github.com/gpbl/react-day-picker"}],"type":"framework","bom-ref":"pkg:npm/react-day-picker@9.12.0","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/react-day-picker/package.json"},{"name":"ImportedModules","value":"react-day-picker,DayPicker,react-day-picker/DayPicker,getDefaultClassNames,react-day-picker/getDefaultClassNames,DayButton,react-day-picker/DayButton"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/react-day-picker/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/react-day-picker/package.json"}],"occurrences":[{"location":"dist/react/ui/calendar.js#8"},{"location":"tmp/dist/react/ui/calendar.js#8"},{"location":"src/react/ui/calendar.tsx#10"}]},"tags":["framework"]},{"authors":[{"name":"Beier(Bill) Luo <bluebill1049@hotmail.com>"}],"group":"","name":"react-hook-form","version":"7.68.0","description":"Performant, flexible and extensible forms library for React Hooks","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/react-hook-form@7.68.0","externalReferences":[{"type":"website","url":"https://react-hook-form.com"},{"type":"vcs","url":"https://github.com/react-hook-form/react-hook-form"}],"type":"framework","bom-ref":"pkg:npm/react-hook-form@7.68.0","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/react-hook-form/package.json"},{"name":"ImportedModules","value":"react-hook-form,Controller,react-hook-form/Controller,FormProvider,react-hook-form/FormProvider,useFormContext,react-hook-form/useFormContext,useFormState,react-hook-form/useFormState,ControllerProps,react-hook-form/ControllerProps,FieldPath,react-hook-form/FieldPath,FieldValues,react-hook-form/FieldValues"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/react-hook-form/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/react-hook-form/package.json"}],"occurrences":[{"location":"dist/react/ui/form.js#8"},{"location":"tmp/dist/react/ui/form.js#8"},{"location":"src/react/ui/form.tsx#14"}]},"tags":["framework"]},{"authors":[{"name":"Brian Vaughn <brian.david.vaughn@gmail.com>"}],"group":"","name":"react-resizable-panels","version":"3.0.6","description":"React components for resizable panel groups/layouts","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/react-resizable-panels@3.0.6","externalReferences":[{"type":"vcs","url":"git+https://github.com/bvaughn/react-resizable-panels.git"}],"type":"framework","bom-ref":"pkg:npm/react-resizable-panels@3.0.6","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/react-resizable-panels/package.json"},{"name":"ImportedModules","value":"react-resizable-panels"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/react-resizable-panels/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/react-resizable-panels/package.json"}],"occurrences":[{"location":"dist/react/ui/resizable.js#4"},{"location":"tmp/dist/react/ui/resizable.js#4"},{"location":"src/react/ui/resizable.tsx#3"}]},"tags":["framework"]},{"group":"","name":"react","version":"19.2.0","description":"React is a JavaScript library for building user interfaces.","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/react@19.2.0","externalReferences":[{"type":"website","url":"https://react.dev/"},{"type":"vcs","url":"https://github.com/facebook/react.git"}],"type":"framework","bom-ref":"pkg:npm/react@19.2.0","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/react/package.json"},{"name":"ExportedModules","value":"react/charts/area,react/charts/bar,react/charts/heatmap,react/charts/line,react/charts/pie,react/charts/radar,react/charts/scatter,react/hooks/use-chart-data,react/charts/base,react/charts/create-chart,react/charts/wrapper,react/charts/normalize,react/charts/constants,react/charts/theme,react/charts/utils,react/charts/options,react/charts/types,react/lib/format,react/genie/genie-chart-inference,react/genie/genie-chat,react/genie/genie-chat-input,react/genie/genie-chat-message,react/genie/genie-chat-message-list,react/genie/genie-query-transform,react/genie/genie-query-visualization,react/genie/use-genie-chat,react/hooks/types,react/hooks/use-agent-chat,react/hooks/use-analytics-query,react/hooks/use-plugin-config,react/hooks/use-serving-invoke,react/hooks/use-serving-stream,DonutChart,pie/DonutChart,PieChart,pie/PieChart,UseChartDataOptions,.hooks/use-chart-data/UseChartDataOptions,UseChartDataResult,.hooks/use-chart-data/UseChartDataResult,useChartData,.hooks/use-chart-data/useChartData,use-chart-data/UseChartDataOptions,use-chart-data/UseChartDataResult,use-chart-data/useChartData,BaseChart,base/BaseChart,BaseChartProps,base/BaseChartProps,ChartWrapper,wrapper/ChartWrapper,ChartWrapperProps,wrapper/ChartWrapperProps,NormalizedHeatmapData,normalize/NormalizedHeatmapData,normalizeChartData,normalize/normalizeChartData,normalizeHeatmapData,normalize/normalizeHeatmapData,CHART_COLOR_VARS,constants/CHART_COLOR_VARS,CHART_COLOR_VARS_CATEGORICAL,constants/CHART_COLOR_VARS_CATEGORICAL,CHART_COLOR_VARS_DIVERGING,constants/CHART_COLOR_VARS_DIVERGING,CHART_COLOR_VARS_SEQUENTIAL,constants/CHART_COLOR_VARS_SEQUENTIAL,DATE_FIELD_PATTERNS,constants/DATE_FIELD_PATTERNS,FALLBACK_COLORS_CATEGORICAL,constants/FALLBACK_COLORS_CATEGORICAL,FALLBACK_COLORS_DIVERGING,constants/FALLBACK_COLORS_DIVERGING,FALLBACK_COLORS_SEQUENTIAL,constants/FALLBACK_COLORS_SEQUENTIAL,METADATA_DATE_PATTERNS,constants/METADATA_DATE_PATTERNS,NAME_FIELD_PATTERNS,constants/NAME_FIELD_PATTERNS,useAllThemeColors,theme/useAllThemeColors,useThemeColors,theme/useThemeColors,createTimeSeriesData,utils/createTimeSeriesData,formatLabel,utils/formatLabel,sortTimeSeriesAscending,utils/sortTimeSeriesAscending,toChartArray,utils/toChartArray,toChartValue,utils/toChartValue,truncateLabel,utils/truncateLabel,buildCartesianOption,options/buildCartesianOption,buildHeatmapOption,options/buildHeatmapOption,buildHorizontalBarOption,options/buildHorizontalBarOption,buildPieOption,options/buildPieOption,buildRadarOption,options/buildRadarOption,CartesianContext,options/CartesianContext,HeatmapContext,options/HeatmapContext,OptionBuilderContext,options/OptionBuilderContext,AreaChartProps,types/AreaChartProps,AreaChartSpecificProps,types/AreaChartSpecificProps,BarChartProps,types/BarChartProps,BarChartSpecificProps,types/BarChartSpecificProps,ChartBaseProps,types/ChartBaseProps,ChartColorPalette,types/ChartColorPalette,ChartData,types/ChartData,ChartType,types/ChartType,DataFormat,types/DataFormat,DataProps,types/DataProps,DonutChartProps,types/DonutChartProps,HeatmapChartProps,types/HeatmapChartProps,HeatmapChartSpecificProps,types/HeatmapChartSpecificProps,LineChartProps,types/LineChartProps,LineChartSpecificProps,types/LineChartSpecificProps,NormalizedChartData,types/NormalizedChartData,NormalizedChartDataBase,types/NormalizedChartDataBase,Orientation,types/Orientation,PieChartProps,types/PieChartProps,PieChartSpecificProps,types/PieChartSpecificProps,QueryProps,types/QueryProps,RadarChartProps,types/RadarChartProps,RadarChartSpecificProps,types/RadarChartSpecificProps,ScatterChartProps,types/ScatterChartProps,ScatterChartSpecificProps,types/ScatterChartSpecificProps,UnifiedChartProps,types/UnifiedChartProps,isArrowTable,types/isArrowTable,isDataProps,types/isDataProps,isQueryProps,types/isQueryProps,ChartInference,genie-chart-inference/ChartInference,getCompatibleChartTypes,genie-chart-inference/getCompatibleChartTypes,inferChartType,genie-chart-inference/inferChartType,ColumnCategory,genie-query-transform/ColumnCategory,GenieColumnMeta,genie-query-transform/GenieColumnMeta,TransformedGenieData,genie-query-transform/TransformedGenieData,transformGenieData,genie-query-transform/transformGenieData,AnalyticsFormat,types/AnalyticsFormat,InferResultByFormat,types/InferResultByFormat,InferRowType,types/InferRowType,InferServingChunk,types/InferServingChunk,InferServingRequest,types/InferServingRequest,InferServingResponse,types/InferServingResponse,PluginRegistry,types/PluginRegistry,QueryRegistry,types/QueryRegistry,ServingAlias,types/ServingAlias,ServingEndpointRegistry,types/ServingEndpointRegistry,TypedArrowTable,types/TypedArrowTable,UseAnalyticsQueryOptions,types/UseAnalyticsQueryOptions,UseAnalyticsQueryResult,types/UseAnalyticsQueryResult,AgentChatEvent,use-agent-chat/AgentChatEvent,UseAgentChatOptions,use-agent-chat/UseAgentChatOptions,UseAgentChatResult,use-agent-chat/UseAgentChatResult,useAgentChat,use-agent-chat/useAgentChat,UseServingInvokeOptions,use-serving-invoke/UseServingInvokeOptions,UseServingInvokeResult,use-serving-invoke/UseServingInvokeResult,useServingInvoke,use-serving-invoke/useServingInvoke,UseServingStreamOptions,use-serving-stream/UseServingStreamOptions,UseServingStreamResult,use-serving-stream/UseServingStreamResult,useServingStream,use-serving-stream/useServingStream"},{"name":"ImportedModules","value":"react,useCallback,react/useCallback,useMemo,react/useMemo,useRef,react/useRef,react/jsx-runtime,react/jsx-runtime/jsx,Component,react/Component,jsxs,react/jsx-runtime/jsxs,useEffect,react/useEffect,useState,react/useState,useLayoutEffect,react/useLayoutEffect,createContext,react/createContext,useContext,react/useContext,Fragment,react/jsx-runtime/Fragment,react/JSX,ReactNode,react/ReactNode,KeyboardEvent,react/KeyboardEvent"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/react/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/react/package.json"}],"occurrences":[{"location":"dist/react/charts/base.js#5"},{"location":"dist/react/charts/base.js#6"},{"location":"dist/react/charts/chart-error-boundary.js#1"},{"location":"dist/react/charts/chart-error-boundary.js#2"},{"location":"dist/react/charts/create-chart.js#3"},{"location":"dist/react/charts/empty.js#1"},{"location":"dist/react/charts/error.js#1"},{"location":"dist/react/charts/loading.js#1"},{"location":"dist/react/charts/theme.js#2"},{"location":"dist/react/charts/wrapper.js#7"},{"location":"dist/react/file-browser/directory-list.js#5"},{"location":"dist/react/file-browser/file-breadcrumb.js#2"},{"location":"dist/react/file-browser/file-entry.js#3"},{"location":"dist/react/file-browser/file-preview-panel.js#5"},{"location":"dist/react/file-browser/new-folder-input.js#3"},{"location":"dist/react/file-browser/new-folder-input.js#4"},{"location":"dist/react/genie/genie-chat-input.js#3"},{"location":"dist/react/genie/genie-chat-input.js#4"},{"location":"dist/react/genie/genie-chat-message-list.js#7"},{"location":"dist/react/genie/genie-chat-message-list.js#8"},{"location":"dist/react/genie/genie-chat-message.js#5"},{"location":"dist/react/genie/genie-chat-message.js#6"},{"location":"dist/react/genie/genie-chat.js#6"},{"location":"dist/react/genie/genie-query-visualization.js#10"},{"location":"dist/react/genie/genie-query-visualization.js#11"},{"location":"dist/react/genie/use-genie-chat.js#4"},{"location":"dist/react/hooks/use-agent-chat.js#3"},{"location":"dist/react/hooks/use-analytics-query.js#5"},{"location":"dist/react/hooks/use-chart-data.js#2"},{"location":"dist/react/hooks/use-mobile.js#1"},{"location":"dist/react/hooks/use-query-hmr.js#1"},{"location":"dist/react/hooks/use-serving-invoke.js#2"},{"location":"dist/react/hooks/use-serving-stream.js#4"},{"location":"dist/react/portal-container-context.js#1"},{"location":"dist/react/portal-container-context.js#2"},{"location":"dist/react/table/data-table.js#8"},{"location":"dist/react/table/empty.js#1"},{"location":"dist/react/table/error.js#1"},{"location":"dist/react/table/loading.js#1"},{"location":"dist/react/table/table-wrapper.js#9"},{"location":"dist/react/table/table-wrapper.js#10"},{"location":"dist/react/ui/accordion.js#2"},{"location":"dist/react/ui/alert-dialog.js#4"},{"location":"dist/react/ui/alert.js#2"},{"location":"dist/react/ui/aspect-ratio.js#3"},{"location":"dist/react/ui/avatar.js#2"},{"location":"dist/react/ui/badge.js#2"},{"location":"dist/react/ui/breadcrumb.js#2"},{"location":"dist/react/ui/button-group.js#3"},{"location":"dist/react/ui/button.js#2"},{"location":"dist/react/ui/calendar.js#5"},{"location":"dist/react/ui/calendar.js#6"},{"location":"dist/react/ui/card.js#2"},{"location":"dist/react/ui/carousel.js#3"},{"location":"dist/react/ui/carousel.js#4"},{"location":"dist/react/ui/chart.js#4"},{"location":"dist/react/ui/chart.js#5"},{"location":"dist/react/ui/checkbox.js#4"},{"location":"dist/react/ui/collapsible.js#1"},{"location":"dist/react/ui/command.js#3"},{"location":"dist/react/ui/context-menu.js#5"},{"location":"dist/react/ui/dialog.js#3"},{"location":"dist/react/ui/drawer.js#5"},{"location":"dist/react/ui/dropdown-menu.js#3"},{"location":"dist/react/ui/empty.js#2"},{"location":"dist/react/ui/field.js#4"},{"location":"dist/react/ui/field.js#5"},{"location":"dist/react/ui/form.js#5"},{"location":"dist/react/ui/form.js#6"},{"location":"dist/react/ui/hover-card.js#5"},{"location":"dist/react/ui/input-group.js#7"},{"location":"dist/react/ui/input-otp.js#2"},{"location":"dist/react/ui/input-otp.js#3"},{"location":"dist/react/ui/input.js#2"},{"location":"dist/react/ui/item.js#3"},{"location":"dist/react/ui/kbd.js#2"},{"location":"dist/react/ui/label.js#4"},{"location":"dist/react/ui/menubar.js#3"},{"location":"dist/react/ui/navigation-menu.js#2"},{"location":"dist/react/ui/pagination.js#3"},{"location":"dist/react/ui/popover.js#5"},{"location":"dist/react/ui/progress.js#2"},{"location":"dist/react/ui/radio-group.js#4"},{"location":"dist/react/ui/resizable.js#2"},{"location":"dist/react/ui/scroll-area.js#4"},{"location":"dist/react/ui/select.js#3"},{"location":"dist/react/ui/separator.js#4"},{"location":"dist/react/ui/sheet.js#3"},{"location":"dist/react/ui/sidebar.js#11"},{"location":"dist/react/ui/sidebar.js#12"},{"location":"dist/react/ui/skeleton.js#2"},{"location":"dist/react/ui/slider.js#4"},{"location":"dist/react/ui/slider.js#5"},{"location":"dist/react/ui/sonner.js#1"},{"location":"dist/react/ui/spinner.js#2"},{"location":"dist/react/ui/switch.js#4"},{"location":"dist/react/ui/table.js#2"},{"location":"dist/react/ui/tabs.js#4"},{"location":"dist/react/ui/textarea.js#2"},{"location":"dist/react/ui/toggle-group.js#3"},{"location":"dist/react/ui/toggle-group.js#4"},{"location":"dist/react/ui/toggle.js#2"},{"location":"dist/react/ui/tooltip.js#5"},{"location":"tmp/dist/react/charts/base.js#5"},{"location":"tmp/dist/react/charts/base.js#6"},{"location":"tmp/dist/react/charts/chart-error-boundary.js#1"},{"location":"tmp/dist/react/charts/chart-error-boundary.js#2"},{"location":"tmp/dist/react/charts/create-chart.js#3"},{"location":"tmp/dist/react/charts/empty.js#1"},{"location":"tmp/dist/react/charts/error.js#1"},{"location":"tmp/dist/react/charts/loading.js#1"},{"location":"tmp/dist/react/charts/theme.js#2"},{"location":"tmp/dist/react/charts/wrapper.js#7"},{"location":"tmp/dist/react/file-browser/directory-list.js#5"},{"location":"tmp/dist/react/file-browser/file-breadcrumb.js#2"},{"location":"tmp/dist/react/file-browser/file-entry.js#3"},{"location":"tmp/dist/react/file-browser/file-preview-panel.js#5"},{"location":"tmp/dist/react/file-browser/new-folder-input.js#3"},{"location":"tmp/dist/react/file-browser/new-folder-input.js#4"},{"location":"tmp/dist/react/genie/genie-chat-input.js#3"},{"location":"tmp/dist/react/genie/genie-chat-input.js#4"},{"location":"tmp/dist/react/genie/genie-chat-message-list.js#7"},{"location":"tmp/dist/react/genie/genie-chat-message-list.js#8"},{"location":"tmp/dist/react/genie/genie-chat-message.js#5"},{"location":"tmp/dist/react/genie/genie-chat-message.js#6"},{"location":"tmp/dist/react/genie/genie-chat.js#6"},{"location":"tmp/dist/react/genie/genie-query-visualization.js#10"},{"location":"tmp/dist/react/genie/genie-query-visualization.js#11"},{"location":"tmp/dist/react/genie/use-genie-chat.js#4"},{"location":"tmp/dist/react/hooks/use-agent-chat.js#3"},{"location":"tmp/dist/react/hooks/use-analytics-query.js#5"},{"location":"tmp/dist/react/hooks/use-chart-data.js#2"},{"location":"tmp/dist/react/hooks/use-mobile.js#1"},{"location":"tmp/dist/react/hooks/use-query-hmr.js#1"},{"location":"tmp/dist/react/hooks/use-serving-invoke.js#2"},{"location":"tmp/dist/react/hooks/use-serving-stream.js#4"},{"location":"tmp/dist/react/portal-container-context.js#1"},{"location":"tmp/dist/react/portal-container-context.js#2"},{"location":"tmp/dist/react/table/data-table.js#8"},{"location":"tmp/dist/react/table/empty.js#1"},{"location":"tmp/dist/react/table/error.js#1"},{"location":"tmp/dist/react/table/loading.js#1"},{"location":"tmp/dist/react/table/table-wrapper.js#9"},{"location":"tmp/dist/react/table/table-wrapper.js#10"},{"location":"tmp/dist/react/ui/accordion.js#2"},{"location":"tmp/dist/react/ui/alert-dialog.js#4"},{"location":"tmp/dist/react/ui/alert.js#2"},{"location":"tmp/dist/react/ui/aspect-ratio.js#3"},{"location":"tmp/dist/react/ui/avatar.js#2"},{"location":"tmp/dist/react/ui/badge.js#2"},{"location":"tmp/dist/react/ui/breadcrumb.js#2"},{"location":"tmp/dist/react/ui/button-group.js#3"},{"location":"tmp/dist/react/ui/button.js#2"},{"location":"tmp/dist/react/ui/calendar.js#5"},{"location":"tmp/dist/react/ui/calendar.js#6"},{"location":"tmp/dist/react/ui/card.js#2"},{"location":"tmp/dist/react/ui/carousel.js#3"},{"location":"tmp/dist/react/ui/carousel.js#4"},{"location":"tmp/dist/react/ui/chart.js#4"},{"location":"tmp/dist/react/ui/chart.js#5"},{"location":"tmp/dist/react/ui/checkbox.js#4"},{"location":"tmp/dist/react/ui/collapsible.js#1"},{"location":"tmp/dist/react/ui/command.js#3"},{"location":"tmp/dist/react/ui/context-menu.js#5"},{"location":"tmp/dist/react/ui/dialog.js#3"},{"location":"tmp/dist/react/ui/drawer.js#5"},{"location":"tmp/dist/react/ui/dropdown-menu.js#3"},{"location":"tmp/dist/react/ui/empty.js#2"},{"location":"tmp/dist/react/ui/field.js#4"},{"location":"tmp/dist/react/ui/field.js#5"},{"location":"tmp/dist/react/ui/form.js#5"},{"location":"tmp/dist/react/ui/form.js#6"},{"location":"tmp/dist/react/ui/hover-card.js#5"},{"location":"tmp/dist/react/ui/input-group.js#7"},{"location":"tmp/dist/react/ui/input-otp.js#2"},{"location":"tmp/dist/react/ui/input-otp.js#3"},{"location":"tmp/dist/react/ui/input.js#2"},{"location":"tmp/dist/react/ui/item.js#3"},{"location":"tmp/dist/react/ui/kbd.js#2"},{"location":"tmp/dist/react/ui/label.js#4"},{"location":"tmp/dist/react/ui/menubar.js#3"},{"location":"tmp/dist/react/ui/navigation-menu.js#2"},{"location":"tmp/dist/react/ui/pagination.js#3"},{"location":"tmp/dist/react/ui/popover.js#5"},{"location":"tmp/dist/react/ui/progress.js#2"},{"location":"tmp/dist/react/ui/radio-group.js#4"},{"location":"tmp/dist/react/ui/resizable.js#2"},{"location":"tmp/dist/react/ui/scroll-area.js#4"},{"location":"tmp/dist/react/ui/select.js#3"},{"location":"tmp/dist/react/ui/separator.js#4"},{"location":"tmp/dist/react/ui/sheet.js#3"},{"location":"tmp/dist/react/ui/sidebar.js#11"},{"location":"tmp/dist/react/ui/sidebar.js#12"},{"location":"tmp/dist/react/ui/skeleton.js#2"},{"location":"tmp/dist/react/ui/slider.js#4"},{"location":"tmp/dist/react/ui/slider.js#5"},{"location":"tmp/dist/react/ui/sonner.js#1"},{"location":"tmp/dist/react/ui/spinner.js#2"},{"location":"tmp/dist/react/ui/switch.js#4"},{"location":"tmp/dist/react/ui/table.js#2"},{"location":"tmp/dist/react/ui/tabs.js#4"},{"location":"tmp/dist/react/ui/textarea.js#2"},{"location":"tmp/dist/react/ui/toggle-group.js#3"},{"location":"tmp/dist/react/ui/toggle-group.js#4"},{"location":"tmp/dist/react/ui/toggle.js#2"},{"location":"tmp/dist/react/ui/tooltip.js#5"},{"location":"src/react/charts/theme.ts#1"},{"location":"src/react/genie/use-genie-chat.ts#1"},{"location":"src/react/hooks/use-agent-chat.ts#1"},{"location":"src/react/hooks/use-analytics-query.ts#1"},{"location":"src/react/hooks/use-chart-data.ts#2"},{"location":"src/react/hooks/use-mobile.ts#1"},{"location":"src/react/hooks/use-query-hmr.ts#1"},{"location":"src/react/hooks/use-serving-invoke.ts#1"},{"location":"src/react/hooks/use-serving-stream.ts#1"},{"location":"src/react/charts/area/index.tsx#1"},{"location":"src/react/charts/bar/index.tsx#1"},{"location":"src/react/charts/base.tsx#3"},{"location":"src/react/charts/chart-error-boundary.tsx#1"},{"location":"src/react/charts/heatmap/index.tsx#1"},{"location":"src/react/charts/line/index.tsx#1"},{"location":"src/react/charts/pie/index.tsx#1"},{"location":"src/react/charts/radar/index.tsx#1"},{"location":"src/react/charts/scatter/index.tsx#1"},{"location":"src/react/charts/wrapper.tsx#1"},{"location":"src/react/file-browser/new-folder-input.tsx#2"},{"location":"src/react/genie/genie-chat-input.tsx#1"},{"location":"src/react/genie/genie-chat-message-list.tsx#1"},{"location":"src/react/genie/genie-chat-message.tsx#3"},{"location":"src/react/genie/genie-query-visualization.tsx#2"},{"location":"src/react/portal-container-context.tsx#1"},{"location":"src/react/portal-container-context.tsx#2"},{"location":"src/react/table/table-wrapper.tsx#16"},{"location":"src/react/ui/accordion.tsx#1"},{"location":"src/react/ui/alert-dialog.tsx#1"},{"location":"src/react/ui/alert.tsx#1"},{"location":"src/react/ui/avatar.tsx#1"},{"location":"src/react/ui/badge.tsx#1"},{"location":"src/react/ui/breadcrumb.tsx#1"},{"location":"src/react/ui/button.tsx#1"},{"location":"src/react/ui/calendar.tsx#4"},{"location":"src/react/ui/card.tsx#1"},{"location":"src/react/ui/carousel.tsx#1"},{"location":"src/react/ui/chart.tsx#3"},{"location":"src/react/ui/checkbox.tsx#3"},{"location":"src/react/ui/command.tsx#1"},{"location":"src/react/ui/context-menu.tsx#3"},{"location":"src/react/ui/dialog.tsx#1"},{"location":"src/react/ui/drawer.tsx#3"},{"location":"src/react/ui/dropdown-menu.tsx#1"},{"location":"src/react/ui/field.tsx#1"},{"location":"src/react/ui/form.tsx#3"},{"location":"src/react/ui/hover-card.tsx#3"},{"location":"src/react/ui/input-group.tsx#3"},{"location":"src/react/ui/input-otp.tsx#1"},{"location":"src/react/ui/input.tsx#1"},{"location":"src/react/ui/item.tsx#1"},{"location":"src/react/ui/label.tsx#3"},{"location":"src/react/ui/menubar.tsx#1"},{"location":"src/react/ui/navigation-menu.tsx#1"},{"location":"src/react/ui/pagination.tsx#1"},{"location":"src/react/ui/popover.tsx#3"},{"location":"src/react/ui/progress.tsx#1"},{"location":"src/react/ui/radio-group.tsx#3"},{"location":"src/react/ui/resizable.tsx#1"},{"location":"src/react/ui/scroll-area.tsx#3"},{"location":"src/react/ui/select.tsx#1"},{"location":"src/react/ui/separator.tsx#3"},{"location":"src/react/ui/sheet.tsx#1"},{"location":"src/react/ui/sidebar.tsx#3"},{"location":"src/react/ui/slider.tsx#3"},{"location":"src/react/ui/switch.tsx#3"},{"location":"src/react/ui/table.tsx#1"},{"location":"src/react/ui/tabs.tsx#3"},{"location":"src/react/ui/textarea.tsx#1"},{"location":"src/react/ui/toggle-group.tsx#1"},{"location":"src/react/ui/toggle.tsx#1"},{"location":"src/react/ui/tooltip.tsx#3"},{"location":"dist/react/charts/base.js#6"},{"location":"dist/react/charts/chart-error-boundary.js#2"},{"location":"dist/react/charts/create-chart.js#3"},{"location":"dist/react/charts/empty.js#1"},{"location":"dist/react/charts/error.js#1"},{"location":"dist/react/charts/loading.js#1"},{"location":"dist/react/charts/wrapper.js#7"},{"location":"dist/react/file-browser/directory-list.js#5"},{"location":"dist/react/file-browser/file-breadcrumb.js#2"},{"location":"dist/react/file-browser/file-entry.js#3"},{"location":"dist/react/file-browser/file-preview-panel.js#5"},{"location":"dist/react/file-browser/new-folder-input.js#4"},{"location":"dist/react/genie/genie-chat-input.js#4"},{"location":"dist/react/genie/genie-chat-message-list.js#8"},{"location":"dist/react/genie/genie-chat-message.js#6"},{"location":"dist/react/genie/genie-chat.js#6"},{"location":"dist/react/genie/genie-query-visualization.js#11"},{"location":"dist/react/portal-container-context.js#2"},{"location":"dist/react/table/data-table.js#8"},{"location":"dist/react/table/empty.js#1"},{"location":"dist/react/table/error.js#1"},{"location":"dist/react/table/loading.js#1"},{"location":"dist/react/table/table-wrapper.js#10"},{"location":"dist/react/ui/accordion.js#2"},{"location":"dist/react/ui/alert-dialog.js#4"},{"location":"dist/react/ui/alert.js#2"},{"location":"dist/react/ui/aspect-ratio.js#3"},{"location":"dist/react/ui/avatar.js#2"},{"location":"dist/react/ui/badge.js#2"},{"location":"dist/react/ui/breadcrumb.js#2"},{"location":"dist/react/ui/button-group.js#3"},{"location":"dist/react/ui/button.js#2"},{"location":"dist/react/ui/calendar.js#6"},{"location":"dist/react/ui/card.js#2"},{"location":"dist/react/ui/carousel.js#4"},{"location":"dist/react/ui/chart.js#5"},{"location":"dist/react/ui/checkbox.js#4"},{"location":"dist/react/ui/collapsible.js#1"},{"location":"dist/react/ui/command.js#3"},{"location":"dist/react/ui/context-menu.js#5"},{"location":"dist/react/ui/dialog.js#3"},{"location":"dist/react/ui/drawer.js#5"},{"location":"dist/react/ui/dropdown-menu.js#3"},{"location":"dist/react/ui/empty.js#2"},{"location":"dist/react/ui/field.js#5"},{"location":"dist/react/ui/form.js#6"},{"location":"dist/react/ui/hover-card.js#5"},{"location":"dist/react/ui/input-group.js#7"},{"location":"dist/react/ui/input-otp.js#3"},{"location":"dist/react/ui/input.js#2"},{"location":"dist/react/ui/item.js#3"},{"location":"dist/react/ui/kbd.js#2"},{"location":"dist/react/ui/label.js#4"},{"location":"dist/react/ui/menubar.js#3"},{"location":"dist/react/ui/navigation-menu.js#2"},{"location":"dist/react/ui/pagination.js#3"},{"location":"dist/react/ui/popover.js#5"},{"location":"dist/react/ui/progress.js#2"},{"location":"dist/react/ui/radio-group.js#4"},{"location":"dist/react/ui/resizable.js#2"},{"location":"dist/react/ui/scroll-area.js#4"},{"location":"dist/react/ui/select.js#3"},{"location":"dist/react/ui/separator.js#4"},{"location":"dist/react/ui/sheet.js#3"},{"location":"dist/react/ui/sidebar.js#12"},{"location":"dist/react/ui/skeleton.js#2"},{"location":"dist/react/ui/slider.js#5"},{"location":"dist/react/ui/sonner.js#1"},{"location":"dist/react/ui/spinner.js#2"},{"location":"dist/react/ui/switch.js#4"},{"location":"dist/react/ui/table.js#2"},{"location":"dist/react/ui/tabs.js#4"},{"location":"dist/react/ui/textarea.js#2"},{"location":"dist/react/ui/toggle-group.js#4"},{"location":"dist/react/ui/toggle.js#2"},{"location":"dist/react/ui/tooltip.js#5"},{"location":"tmp/dist/react/charts/base.js#6"},{"location":"tmp/dist/react/charts/chart-error-boundary.js#2"},{"location":"tmp/dist/react/charts/create-chart.js#3"},{"location":"tmp/dist/react/charts/empty.js#1"},{"location":"tmp/dist/react/charts/error.js#1"},{"location":"tmp/dist/react/charts/loading.js#1"},{"location":"tmp/dist/react/charts/wrapper.js#7"},{"location":"tmp/dist/react/file-browser/directory-list.js#5"},{"location":"tmp/dist/react/file-browser/file-breadcrumb.js#2"},{"location":"tmp/dist/react/file-browser/file-entry.js#3"},{"location":"tmp/dist/react/file-browser/file-preview-panel.js#5"},{"location":"tmp/dist/react/file-browser/new-folder-input.js#4"},{"location":"tmp/dist/react/genie/genie-chat-input.js#4"},{"location":"tmp/dist/react/genie/genie-chat-message-list.js#8"},{"location":"tmp/dist/react/genie/genie-chat-message.js#6"},{"location":"tmp/dist/react/genie/genie-chat.js#6"},{"location":"tmp/dist/react/genie/genie-query-visualization.js#11"},{"location":"tmp/dist/react/portal-container-context.js#2"},{"location":"tmp/dist/react/table/data-table.js#8"},{"location":"tmp/dist/react/table/empty.js#1"},{"location":"tmp/dist/react/table/error.js#1"},{"location":"tmp/dist/react/table/loading.js#1"},{"location":"tmp/dist/react/table/table-wrapper.js#10"},{"location":"tmp/dist/react/ui/accordion.js#2"},{"location":"tmp/dist/react/ui/alert-dialog.js#4"},{"location":"tmp/dist/react/ui/alert.js#2"},{"location":"tmp/dist/react/ui/aspect-ratio.js#3"},{"location":"tmp/dist/react/ui/avatar.js#2"},{"location":"tmp/dist/react/ui/badge.js#2"},{"location":"tmp/dist/react/ui/breadcrumb.js#2"},{"location":"tmp/dist/react/ui/button-group.js#3"},{"location":"tmp/dist/react/ui/button.js#2"},{"location":"tmp/dist/react/ui/calendar.js#6"},{"location":"tmp/dist/react/ui/card.js#2"},{"location":"tmp/dist/react/ui/carousel.js#4"},{"location":"tmp/dist/react/ui/chart.js#5"},{"location":"tmp/dist/react/ui/checkbox.js#4"},{"location":"tmp/dist/react/ui/collapsible.js#1"},{"location":"tmp/dist/react/ui/command.js#3"},{"location":"tmp/dist/react/ui/context-menu.js#5"},{"location":"tmp/dist/react/ui/dialog.js#3"},{"location":"tmp/dist/react/ui/drawer.js#5"},{"location":"tmp/dist/react/ui/dropdown-menu.js#3"},{"location":"tmp/dist/react/ui/empty.js#2"},{"location":"tmp/dist/react/ui/field.js#5"},{"location":"tmp/dist/react/ui/form.js#6"},{"location":"tmp/dist/react/ui/hover-card.js#5"},{"location":"tmp/dist/react/ui/input-group.js#7"},{"location":"tmp/dist/react/ui/input-otp.js#3"},{"location":"tmp/dist/react/ui/input.js#2"},{"location":"tmp/dist/react/ui/item.js#3"},{"location":"tmp/dist/react/ui/kbd.js#2"},{"location":"tmp/dist/react/ui/label.js#4"},{"location":"tmp/dist/react/ui/menubar.js#3"},{"location":"tmp/dist/react/ui/navigation-menu.js#2"},{"location":"tmp/dist/react/ui/pagination.js#3"},{"location":"tmp/dist/react/ui/popover.js#5"},{"location":"tmp/dist/react/ui/progress.js#2"},{"location":"tmp/dist/react/ui/radio-group.js#4"},{"location":"tmp/dist/react/ui/resizable.js#2"},{"location":"tmp/dist/react/ui/scroll-area.js#4"},{"location":"tmp/dist/react/ui/select.js#3"},{"location":"tmp/dist/react/ui/separator.js#4"},{"location":"tmp/dist/react/ui/sheet.js#3"},{"location":"tmp/dist/react/ui/sidebar.js#12"},{"location":"tmp/dist/react/ui/skeleton.js#2"},{"location":"tmp/dist/react/ui/slider.js#5"},{"location":"tmp/dist/react/ui/sonner.js#1"},{"location":"tmp/dist/react/ui/spinner.js#2"},{"location":"tmp/dist/react/ui/switch.js#4"},{"location":"tmp/dist/react/ui/table.js#2"},{"location":"tmp/dist/react/ui/tabs.js#4"},{"location":"tmp/dist/react/ui/textarea.js#2"},{"location":"tmp/dist/react/ui/toggle-group.js#4"},{"location":"tmp/dist/react/ui/toggle.js#2"},{"location":"tmp/dist/react/ui/tooltip.js#5"}]},"tags":["framework"]},{"authors":[{"name":"recharts group"}],"group":"","name":"recharts","version":"2.15.4","description":"React charts","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/recharts@2.15.4","externalReferences":[{"type":"vcs","url":"https://github.com/recharts/recharts"},{"type":"vcs","url":"git+https://github.com/recharts/recharts.git"}],"type":"library","bom-ref":"pkg:npm/recharts@2.15.4","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/recharts/package.json"},{"name":"ImportedModules","value":"recharts"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/recharts/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/recharts/package.json"}],"occurrences":[{"location":"dist/react/ui/chart.js#6"},{"location":"tmp/dist/react/ui/chart.js#6"},{"location":"src/react/ui/chart.tsx#4"}]}},{"group":"","name":"shared","version":"0.0.1","scope":"required","purl":"pkg:npm/shared@0.0.1","type":"library","bom-ref":"pkg:npm/shared@0.0.1","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/shared/package.json"},{"name":"ExportedModules","value":"shared,isSQLTypeMarker,shared/isSQLTypeMarker,SQLBinaryMarker,shared/SQLBinaryMarker,SQLBooleanMarker,shared/SQLBooleanMarker,SQLDateMarker,shared/SQLDateMarker,SQLNumberMarker,shared/SQLNumberMarker,SQLStringMarker,shared/SQLStringMarker,SQLTimestampMarker,shared/SQLTimestampMarker,SQLTypeMarker,shared/SQLTypeMarker,shared/sql,GenieAttachmentResponse,shared/GenieAttachmentResponse,GenieMessageResponse,shared/GenieMessageResponse,GenieStatementResponse,shared/GenieStatementResponse,GenieStreamEvent,shared/GenieStreamEvent"},{"name":"ImportedModules","value":"shared,GenieStatementResponse,shared/GenieStatementResponse,GenieAttachmentResponse,shared/GenieAttachmentResponse"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/shared/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/shared/package.json"}],"occurrences":[{"location":"src/js/index.ts#11"},{"location":"src/react/genie/genie-query-transform.ts#11"},{"location":"src/react/genie/types.ts#1"},{"location":"src/react/genie/types.ts#8"},{"location":"src/react/genie/genie-query-visualization.tsx#3"}]},"tags":["sql"]},{"authors":[{"name":"Emil Kowalski <e@emilkowal.ski>"}],"group":"","name":"sonner","version":"2.0.7","description":"An opinionated toast component for React.","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/sonner@2.0.7","externalReferences":[{"type":"website","url":"https://sonner.emilkowal.ski/"},{"type":"vcs","url":"git+https://github.com/emilkowalski/sonner.git"}],"type":"library","bom-ref":"pkg:npm/sonner@2.0.7","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/sonner/package.json"},{"name":"ImportedModules","value":"sonner,Toaster,sonner/Toaster,ToasterProps,sonner/ToasterProps"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/sonner/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/sonner/package.json"}],"occurrences":[{"location":"dist/react/ui/sonner.js#4"},{"location":"tmp/dist/react/ui/sonner.js#4"},{"location":"src/react/ui/sonner.tsx#10"}]}},{"authors":[{"name":"Dany Castillo"}],"group":"","name":"tailwind-merge","version":"3.4.0","description":"Merge Tailwind CSS classes without style conflicts","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/tailwind-merge@3.4.0","externalReferences":[{"type":"vcs","url":"https://github.com/dcastil/tailwind-merge"},{"type":"vcs","url":"https://github.com/dcastil/tailwind-merge.git"}],"type":"library","bom-ref":"pkg:npm/tailwind-merge@3.4.0","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/tailwind-merge/package.json"},{"name":"ImportedModules","value":"tailwind-merge,twMerge,tailwind-merge/twMerge"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/tailwind-merge/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/tailwind-merge/package.json"}],"occurrences":[{"location":"dist/react/lib/utils.js#2"},{"location":"tmp/dist/react/lib/utils.js#2"},{"location":"src/react/lib/utils.ts#2"}]}},{"authors":[{"name":"Emil Kowalski <e@emilkowal.ski>"}],"group":"","name":"vaul","version":"1.1.2","description":"Drawer component for React.","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/vaul@1.1.2","externalReferences":[{"type":"website","url":"https://vaul.emilkowal.ski/"},{"type":"vcs","url":"https://github.com/emilkowalski/vaul.git"}],"type":"library","bom-ref":"pkg:npm/vaul@1.1.2","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/vaul/package.json"},{"name":"ImportedModules","value":"vaul,Drawer,vaul/Drawer"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/vaul/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/vaul/package.json"}],"occurrences":[{"location":"dist/react/ui/drawer.js#6"},{"location":"tmp/dist/react/ui/drawer.js#6"},{"location":"src/react/ui/drawer.tsx#4"}]}}],"dependencies":[],"compositions":[{"bom-ref":"pkg:npm/@databricks/appkit-ui@0.34.1","aggregate":"incomplete"}],"annotations":[{"bom-ref":"metadata-annotations","subjects":["pkg:npm/@databricks/appkit-ui@0.34.1"],"annotator":{"component":{"group":"@cyclonedx","name":"cdxgen","version":"12.1.2","purl":"pkg:npm/%40cyclonedx/cdxgen@12.1.2","type":"application","bom-ref":"pkg:npm/@cyclonedx/cdxgen@12.1.2","publisher":"OWASP Foundation","authors":[{"name":"OWASP Foundation"}]}},"timestamp":"2026-05-13T18:55:57Z","text":"This Software Bill-of-Materials (SBOM) document was created on Wednesday, May 13, 2026 with cdxgen. The data was captured during the build lifecycle phase. The document describes an application named 'appkit-ui' with version '0.34.1'. There are 48 components. The package type in this SBOM is npm with 2 purl namespaces described under components. The components were identified from 48 source files."}]}
1
+ {"bomFormat":"CycloneDX","specVersion":"1.6","serialNumber":"urn:uuid:754a1652-493e-490f-85f0-15417b95a28c","version":1,"metadata":{"timestamp":"2026-05-14T13:31:16Z","tools":{"components":[{"group":"@cyclonedx","name":"cdxgen","version":"12.1.2","purl":"pkg:npm/%40cyclonedx/cdxgen@12.1.2","type":"application","bom-ref":"pkg:npm/@cyclonedx/cdxgen@12.1.2","publisher":"OWASP Foundation","authors":[{"name":"OWASP Foundation"}]}]},"authors":[{"name":"OWASP Foundation"}],"lifecycles":[{"phase":"build"}],"component":{"name":"appkit-ui","group":"@databricks","version":"0.35.0","purl":"pkg:npm/%40databricks/appkit-ui@0.35.0","bom-ref":"pkg:npm/@databricks/appkit-ui@0.35.0","type":"application","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"externalReferences":[{"type":"vcs","url":"git+https://github.com/databricks/appkit.git"}]},"properties":[{"name":"cdx:bom:componentTypes","value":"npm"},{"name":"cdx:bom:componentNamespaces","value":"@radix-ui\\n@tanstack"},{"name":"cdx:bom:componentSrcFiles","value":"packages/appkit-ui/node_modules/@radix-ui/react-accordion/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-alert-dialog/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-aspect-ratio/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-avatar/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-checkbox/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-collapsible/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-context-menu/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-dialog/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-dropdown-menu/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-hover-card/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-label/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-menubar/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-navigation-menu/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-popover/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-progress/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-radio-group/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-scroll-area/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-select/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-separator/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-slider/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-slot/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-switch/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-tabs/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-toggle-group/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-toggle/package.json\\npackages/appkit-ui/node_modules/@radix-ui/react-tooltip/package.json\\npackages/appkit-ui/node_modules/@tanstack/react-table/package.json\\npackages/appkit-ui/node_modules/apache-arrow/package.json\\npackages/appkit-ui/node_modules/class-variance-authority/package.json\\npackages/appkit-ui/node_modules/clsx/package.json\\npackages/appkit-ui/node_modules/cmdk/package.json\\npackages/appkit-ui/node_modules/dompurify/package.json\\npackages/appkit-ui/node_modules/echarts-for-react/package.json\\npackages/appkit-ui/node_modules/echarts/package.json\\npackages/appkit-ui/node_modules/embla-carousel-react/package.json\\npackages/appkit-ui/node_modules/input-otp/package.json\\npackages/appkit-ui/node_modules/lucide-react/package.json\\npackages/appkit-ui/node_modules/marked/package.json\\npackages/appkit-ui/node_modules/next-themes/package.json\\npackages/appkit-ui/node_modules/react-day-picker/package.json\\npackages/appkit-ui/node_modules/react-hook-form/package.json\\npackages/appkit-ui/node_modules/react-resizable-panels/package.json\\npackages/appkit-ui/node_modules/react/package.json\\npackages/appkit-ui/node_modules/recharts/package.json\\npackages/appkit-ui/node_modules/shared/package.json\\npackages/appkit-ui/node_modules/sonner/package.json\\npackages/appkit-ui/node_modules/tailwind-merge/package.json\\npackages/appkit-ui/node_modules/vaul/package.json"}]},"components":[{"group":"@radix-ui","name":"react-accordion","version":"1.2.12","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-accordion@1.2.12","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-accordion@1.2.12","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-accordion/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-accordion"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-accordion/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-accordion/package.json"}],"occurrences":[{"location":"dist/react/ui/accordion.js#4"},{"location":"tmp/dist/react/ui/accordion.js#4"},{"location":"src/react/ui/accordion.tsx#2"}]}},{"group":"@radix-ui","name":"react-alert-dialog","version":"1.1.15","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-alert-dialog@1.1.15","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-alert-dialog@1.1.15","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-alert-dialog/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-alert-dialog"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-alert-dialog/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-alert-dialog/package.json"}],"occurrences":[{"location":"dist/react/ui/alert-dialog.js#5"},{"location":"tmp/dist/react/ui/alert-dialog.js#5"},{"location":"src/react/ui/alert-dialog.tsx#2"}]}},{"group":"@radix-ui","name":"react-aspect-ratio","version":"1.1.8","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-aspect-ratio@1.1.8","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-aspect-ratio@1.1.8","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-aspect-ratio/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-aspect-ratio"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-aspect-ratio/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-aspect-ratio/package.json"}],"occurrences":[{"location":"dist/react/ui/aspect-ratio.js#4"},{"location":"tmp/dist/react/ui/aspect-ratio.js#4"},{"location":"src/react/ui/aspect-ratio.tsx#3"}]}},{"group":"@radix-ui","name":"react-avatar","version":"1.1.11","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-avatar@1.1.11","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-avatar@1.1.11","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-avatar/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-avatar"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-avatar/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-avatar/package.json"}],"occurrences":[{"location":"dist/react/ui/avatar.js#3"},{"location":"tmp/dist/react/ui/avatar.js#3"},{"location":"src/react/ui/avatar.tsx#2"}]}},{"group":"@radix-ui","name":"react-checkbox","version":"1.3.3","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-checkbox@1.3.3","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-checkbox@1.3.3","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-checkbox/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-checkbox"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-checkbox/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-checkbox/package.json"}],"occurrences":[{"location":"dist/react/ui/checkbox.js#6"},{"location":"tmp/dist/react/ui/checkbox.js#6"},{"location":"src/react/ui/checkbox.tsx#4"}]}},{"group":"@radix-ui","name":"react-collapsible","version":"1.1.12","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-collapsible@1.1.12","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-collapsible@1.1.12","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-collapsible/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-collapsible"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-collapsible/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-collapsible/package.json"}],"occurrences":[{"location":"dist/react/ui/collapsible.js#2"},{"location":"tmp/dist/react/ui/collapsible.js#2"},{"location":"src/react/ui/collapsible.tsx#1"}]}},{"group":"@radix-ui","name":"react-context-menu","version":"2.2.16","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-context-menu@2.2.16","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-context-menu@2.2.16","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-context-menu/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-context-menu"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-context-menu/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-context-menu/package.json"}],"occurrences":[{"location":"dist/react/ui/context-menu.js#7"},{"location":"tmp/dist/react/ui/context-menu.js#7"},{"location":"src/react/ui/context-menu.tsx#4"}]}},{"group":"@radix-ui","name":"react-dialog","version":"1.1.15","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-dialog@1.1.15","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-dialog@1.1.15","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-dialog/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-dialog"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-dialog/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-dialog/package.json"}],"occurrences":[{"location":"dist/react/ui/dialog.js#5"},{"location":"dist/react/ui/sheet.js#5"},{"location":"tmp/dist/react/ui/dialog.js#5"},{"location":"tmp/dist/react/ui/sheet.js#5"},{"location":"src/react/ui/dialog.tsx#2"},{"location":"src/react/ui/sheet.tsx#2"}]}},{"group":"@radix-ui","name":"react-dropdown-menu","version":"2.1.16","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-dropdown-menu@2.1.16","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-dropdown-menu@2.1.16","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-dropdown-menu/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-dropdown-menu"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-dropdown-menu/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-dropdown-menu/package.json"}],"occurrences":[{"location":"dist/react/ui/dropdown-menu.js#5"},{"location":"tmp/dist/react/ui/dropdown-menu.js#5"},{"location":"src/react/ui/dropdown-menu.tsx#2"}]}},{"group":"@radix-ui","name":"react-hover-card","version":"1.1.15","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-hover-card@1.1.15","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-hover-card@1.1.15","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-hover-card/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-hover-card"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-hover-card/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-hover-card/package.json"}],"occurrences":[{"location":"dist/react/ui/hover-card.js#6"},{"location":"tmp/dist/react/ui/hover-card.js#6"},{"location":"src/react/ui/hover-card.tsx#4"}]}},{"group":"@radix-ui","name":"react-label","version":"2.1.8","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-label@2.1.8","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-label@2.1.8","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-label/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-label"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-label/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-label/package.json"}],"occurrences":[{"location":"dist/react/ui/label.js#5"},{"location":"tmp/dist/react/ui/label.js#5"},{"location":"src/react/ui/form.tsx#4"},{"location":"src/react/ui/label.tsx#4"}]}},{"group":"@radix-ui","name":"react-menubar","version":"1.1.16","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-menubar@1.1.16","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-menubar@1.1.16","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-menubar/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-menubar"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-menubar/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-menubar/package.json"}],"occurrences":[{"location":"dist/react/ui/menubar.js#5"},{"location":"tmp/dist/react/ui/menubar.js#5"},{"location":"src/react/ui/menubar.tsx#2"}]}},{"group":"@radix-ui","name":"react-navigation-menu","version":"1.2.14","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-navigation-menu@1.2.14","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-navigation-menu@1.2.14","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-navigation-menu/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-navigation-menu"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-navigation-menu/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-navigation-menu/package.json"}],"occurrences":[{"location":"dist/react/ui/navigation-menu.js#5"},{"location":"tmp/dist/react/ui/navigation-menu.js#5"},{"location":"src/react/ui/navigation-menu.tsx#2"}]}},{"group":"@radix-ui","name":"react-popover","version":"1.1.15","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-popover@1.1.15","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-popover@1.1.15","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-popover/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-popover"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-popover/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-popover/package.json"}],"occurrences":[{"location":"dist/react/ui/popover.js#6"},{"location":"tmp/dist/react/ui/popover.js#6"},{"location":"src/react/ui/popover.tsx#4"}]}},{"group":"@radix-ui","name":"react-progress","version":"1.1.8","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-progress@1.1.8","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-progress@1.1.8","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-progress/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-progress"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-progress/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-progress/package.json"}],"occurrences":[{"location":"dist/react/ui/progress.js#3"},{"location":"tmp/dist/react/ui/progress.js#3"},{"location":"src/react/ui/progress.tsx#2"}]}},{"group":"@radix-ui","name":"react-radio-group","version":"1.3.8","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-radio-group@1.3.8","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-radio-group@1.3.8","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-radio-group/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-radio-group"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-radio-group/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-radio-group/package.json"}],"occurrences":[{"location":"dist/react/ui/radio-group.js#6"},{"location":"tmp/dist/react/ui/radio-group.js#6"},{"location":"src/react/ui/radio-group.tsx#4"}]}},{"group":"@radix-ui","name":"react-scroll-area","version":"1.2.10","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-scroll-area@1.2.10","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-scroll-area@1.2.10","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-scroll-area/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-scroll-area"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-scroll-area/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-scroll-area/package.json"}],"occurrences":[{"location":"dist/react/ui/scroll-area.js#5"},{"location":"tmp/dist/react/ui/scroll-area.js#5"},{"location":"src/react/ui/scroll-area.tsx#4"}]}},{"group":"@radix-ui","name":"react-select","version":"2.2.6","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-select@2.2.6","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-select@2.2.6","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-select/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-select"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-select/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-select/package.json"}],"occurrences":[{"location":"dist/react/ui/select.js#5"},{"location":"tmp/dist/react/ui/select.js#5"},{"location":"src/react/ui/select.tsx#2"}]}},{"group":"@radix-ui","name":"react-separator","version":"1.1.8","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-separator@1.1.8","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-separator@1.1.8","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-separator/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-separator"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-separator/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-separator/package.json"}],"occurrences":[{"location":"dist/react/ui/separator.js#5"},{"location":"tmp/dist/react/ui/separator.js#5"},{"location":"src/react/ui/separator.tsx#4"}]}},{"group":"@radix-ui","name":"react-slider","version":"1.3.6","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-slider@1.3.6","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-slider@1.3.6","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-slider/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-slider"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-slider/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-slider/package.json"}],"occurrences":[{"location":"dist/react/ui/slider.js#6"},{"location":"tmp/dist/react/ui/slider.js#6"},{"location":"src/react/ui/slider.tsx#4"}]}},{"group":"@radix-ui","name":"react-slot","version":"1.2.4","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-slot@1.2.4","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-slot@1.2.4","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-slot/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-slot,Slot,@radix-ui/react-slot/Slot"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-slot/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-slot/package.json"}],"occurrences":[{"location":"dist/react/ui/badge.js#3"},{"location":"dist/react/ui/breadcrumb.js#4"},{"location":"dist/react/ui/button-group.js#4"},{"location":"dist/react/ui/button.js#3"},{"location":"dist/react/ui/form.js#7"},{"location":"dist/react/ui/item.js#4"},{"location":"dist/react/ui/sidebar.js#14"},{"location":"tmp/dist/react/ui/badge.js#3"},{"location":"tmp/dist/react/ui/breadcrumb.js#4"},{"location":"tmp/dist/react/ui/button-group.js#4"},{"location":"tmp/dist/react/ui/button.js#3"},{"location":"tmp/dist/react/ui/form.js#7"},{"location":"tmp/dist/react/ui/item.js#4"},{"location":"tmp/dist/react/ui/sidebar.js#14"},{"location":"src/react/ui/badge.tsx#2"},{"location":"src/react/ui/breadcrumb.tsx#2"},{"location":"src/react/ui/button-group.tsx#1"},{"location":"src/react/ui/button.tsx#2"},{"location":"src/react/ui/form.tsx#5"},{"location":"src/react/ui/item.tsx#2"},{"location":"src/react/ui/sidebar.tsx#4"}]}},{"group":"@radix-ui","name":"react-switch","version":"1.2.6","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-switch@1.2.6","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-switch@1.2.6","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-switch/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-switch"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-switch/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-switch/package.json"}],"occurrences":[{"location":"dist/react/ui/switch.js#5"},{"location":"tmp/dist/react/ui/switch.js#5"},{"location":"src/react/ui/switch.tsx#4"}]}},{"group":"@radix-ui","name":"react-tabs","version":"1.1.13","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-tabs@1.1.13","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-tabs@1.1.13","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-tabs/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-tabs"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-tabs/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-tabs/package.json"}],"occurrences":[{"location":"dist/react/ui/tabs.js#5"},{"location":"tmp/dist/react/ui/tabs.js#5"},{"location":"src/react/ui/tabs.tsx#4"}]}},{"group":"@radix-ui","name":"react-toggle-group","version":"1.1.11","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-toggle-group@1.1.11","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-toggle-group@1.1.11","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-toggle-group/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-toggle-group"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-toggle-group/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-toggle-group/package.json"}],"occurrences":[{"location":"dist/react/ui/toggle-group.js#5"},{"location":"tmp/dist/react/ui/toggle-group.js#5"},{"location":"src/react/ui/toggle-group.tsx#2"}]}},{"group":"@radix-ui","name":"react-toggle","version":"1.1.10","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-toggle@1.1.10","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-toggle@1.1.10","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-toggle/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-toggle"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-toggle/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-toggle/package.json"}],"occurrences":[{"location":"dist/react/ui/toggle.js#4"},{"location":"tmp/dist/react/ui/toggle.js#4"},{"location":"src/react/ui/toggle.tsx#2"}]}},{"group":"@radix-ui","name":"react-tooltip","version":"1.2.8","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40radix-ui/react-tooltip@1.2.8","externalReferences":[{"type":"website","url":"https://radix-ui.com/primitives"},{"type":"vcs","url":"git+https://github.com/radix-ui/primitives.git"}],"type":"library","bom-ref":"pkg:npm/@radix-ui/react-tooltip@1.2.8","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@radix-ui/react-tooltip/package.json"},{"name":"ImportedModules","value":"@radix-ui/react-tooltip"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@radix-ui/react-tooltip/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@radix-ui/react-tooltip/package.json"}],"occurrences":[{"location":"dist/react/ui/tooltip.js#6"},{"location":"tmp/dist/react/ui/tooltip.js#6"},{"location":"src/react/ui/tooltip.tsx#4"}]}},{"authors":[{"name":"Tanner Linsley"}],"group":"@tanstack","name":"react-table","version":"8.21.3","description":"Headless UI for building powerful tables & datagrids for React.","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40tanstack/react-table@8.21.3","externalReferences":[{"type":"website","url":"https://tanstack.com/table"},{"type":"vcs","url":"https://github.com/TanStack/table.git"}],"type":"library","bom-ref":"pkg:npm/@tanstack/react-table@8.21.3","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/@tanstack/react-table/package.json"},{"name":"ImportedModules","value":"@tanstack/react-table,flexRender,@tanstack/react-table/flexRender,getCoreRowModel,@tanstack/react-table/getCoreRowModel,getFilteredRowModel,@tanstack/react-table/getFilteredRowModel,getPaginationRowModel,@tanstack/react-table/getPaginationRowModel,getSortedRowModel,@tanstack/react-table/getSortedRowModel,useReactTable,@tanstack/react-table/useReactTable,RowSelectionState,@tanstack/react-table/RowSelectionState,Table,@tanstack/react-table/Table,Column,@tanstack/react-table/Column,ColumnFiltersState,@tanstack/react-table/ColumnFiltersState,@tanstack/react-table/Row,SortingState,@tanstack/react-table/SortingState,VisibilityState,@tanstack/react-table/VisibilityState"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/@tanstack/react-table/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/@tanstack/react-table/package.json"}],"occurrences":[{"location":"dist/react/table/data-table.js#10"},{"location":"dist/react/table/table-wrapper.js#12"},{"location":"tmp/dist/react/table/data-table.js#10"},{"location":"tmp/dist/react/table/table-wrapper.js#12"},{"location":"src/react/table/types.ts#1"},{"location":"src/react/table/data-table.tsx#1"},{"location":"src/react/table/table-wrapper.tsx#14"}]}},{"authors":[{"name":"Apache Software Foundation"}],"group":"","name":"apache-arrow","version":"21.1.0","description":"Apache Arrow columnar in-memory format","scope":"required","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:npm/apache-arrow@21.1.0","externalReferences":[{"type":"website","url":"https://arrow.apache.org/js/"},{"type":"vcs","url":"git+https://github.com/apache/arrow-js.git"}],"type":"library","bom-ref":"pkg:npm/apache-arrow@21.1.0","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/apache-arrow/package.json"},{"name":"ImportedModules","value":"apache-arrow,Field,apache-arrow/Field,Table,apache-arrow/Table"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/apache-arrow/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/apache-arrow/package.json"}],"occurrences":[{"location":"src/js/arrow/arrow-client.ts#1"},{"location":"src/react/charts/normalize.ts#1"},{"location":"src/react/charts/types.ts#1"},{"location":"src/react/hooks/types.ts#1"},{"location":"src/react/hooks/use-chart-data.ts#1"}]}},{"authors":[{"name":"Joe Bell (https://joebell.co.uk)"}],"group":"","name":"class-variance-authority","version":"0.7.1","description":"Class Variance Authority 🧬","scope":"required","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:npm/class-variance-authority@0.7.1","externalReferences":[{"type":"vcs","url":"https://github.com/joe-bell/cva#readme"}],"type":"library","bom-ref":"pkg:npm/class-variance-authority@0.7.1","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/class-variance-authority/package.json"},{"name":"ImportedModules","value":"class-variance-authority,class-variance-authority/cva,VariantProps,class-variance-authority/VariantProps"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/class-variance-authority/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/class-variance-authority/package.json"}],"occurrences":[{"location":"dist/react/ui/alert.js#3"},{"location":"dist/react/ui/badge.js#4"},{"location":"dist/react/ui/button-group.js#5"},{"location":"dist/react/ui/button.js#4"},{"location":"dist/react/ui/empty.js#3"},{"location":"dist/react/ui/field.js#6"},{"location":"dist/react/ui/input-group.js#8"},{"location":"dist/react/ui/item.js#5"},{"location":"dist/react/ui/navigation-menu.js#4"},{"location":"dist/react/ui/sidebar.js#15"},{"location":"dist/react/ui/toggle.js#3"},{"location":"tmp/dist/react/ui/alert.js#3"},{"location":"tmp/dist/react/ui/badge.js#4"},{"location":"tmp/dist/react/ui/button-group.js#5"},{"location":"tmp/dist/react/ui/button.js#4"},{"location":"tmp/dist/react/ui/empty.js#3"},{"location":"tmp/dist/react/ui/field.js#6"},{"location":"tmp/dist/react/ui/input-group.js#8"},{"location":"tmp/dist/react/ui/item.js#5"},{"location":"tmp/dist/react/ui/navigation-menu.js#4"},{"location":"tmp/dist/react/ui/sidebar.js#15"},{"location":"tmp/dist/react/ui/toggle.js#3"},{"location":"src/react/ui/alert.tsx#2"},{"location":"src/react/ui/badge.tsx#3"},{"location":"src/react/ui/button-group.tsx#2"},{"location":"src/react/ui/button.tsx#3"},{"location":"src/react/ui/empty.tsx#1"},{"location":"src/react/ui/field.tsx#2"},{"location":"src/react/ui/input-group.tsx#4"},{"location":"src/react/ui/item.tsx#3"},{"location":"src/react/ui/navigation-menu.tsx#3"},{"location":"src/react/ui/sidebar.tsx#5"},{"location":"src/react/ui/toggle-group.tsx#3"},{"location":"src/react/ui/toggle.tsx#3"}]}},{"authors":[{"name":"Luke Edwards <luke.edwards05@gmail.com> (https://lukeed.com)"}],"group":"","name":"clsx","version":"2.1.1","description":"A tiny (239B) utility for constructing className strings conditionally.","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/clsx@2.1.1","type":"library","bom-ref":"pkg:npm/clsx@2.1.1","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/clsx/package.json"},{"name":"ImportedModules","value":"clsx,clsx/clsx,ClassValue,clsx/ClassValue"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/clsx/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/clsx/package.json"}],"occurrences":[{"location":"dist/react/lib/utils.js#1"},{"location":"tmp/dist/react/lib/utils.js#1"},{"location":"src/react/lib/utils.ts#1"}]}},{"authors":[{"name":"Paco (https://github.com/pacocoursey)"}],"group":"","name":"cmdk","version":"1.1.1","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/cmdk@1.1.1","externalReferences":[{"type":"vcs","url":"https://github.com/pacocoursey/cmdk#readme"},{"type":"vcs","url":"git+https://github.com/pacocoursey/cmdk.git"}],"type":"library","bom-ref":"pkg:npm/cmdk@1.1.1","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/cmdk/package.json"},{"name":"ImportedModules","value":"cmdk,Command,cmdk/Command"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/cmdk/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/cmdk/package.json"}],"occurrences":[{"location":"dist/react/ui/command.js#5"},{"location":"tmp/dist/react/ui/command.js#5"},{"location":"src/react/ui/command.tsx#2"}]}},{"authors":[{"name":"Dr.-Ing. Mario Heiderich"},{"name":" Cure53 <mario@cure53.de> (https://cure53.de/)"}],"group":"","name":"dompurify","version":"3.3.3","description":"DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. It's written in JavaScript and works in all modern browsers (Safari, Opera (15+), Internet Explorer (10+), Firefox and Chrome - as well as almost anything else using Blink or WebKit). DOMPurify is written by security people who have vast background in web attacks and XSS. Fear not.","scope":"required","licenses":[{"expression":"(MPL-2.0 OR Apache-2.0)"}],"purl":"pkg:npm/dompurify@3.3.3","externalReferences":[{"type":"vcs","url":"https://github.com/cure53/DOMPurify"},{"type":"vcs","url":"git://github.com/cure53/DOMPurify.git"}],"type":"library","bom-ref":"pkg:npm/dompurify@3.3.3","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/dompurify/package.json"},{"name":"ImportedModules","value":"dompurify"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/dompurify/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/dompurify/package.json"}],"occurrences":[{"location":"dist/react/genie/genie-chat-message.js#7"},{"location":"tmp/dist/react/genie/genie-chat-message.js#7"},{"location":"src/react/genie/genie-chat-message.tsx#1"}]},"tags":["security","web"]},{"authors":[{"name":"hustcc (http://github.com/hustcc)"}],"group":"","name":"echarts-for-react","version":"3.0.5","description":" Apache Echarts components for React.","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/echarts-for-react@3.0.5","externalReferences":[{"type":"vcs","url":"https://github.com/hustcc/echarts-for-react"},{"type":"vcs","url":"https://github.com/hustcc/echarts-for-react.git"}],"type":"library","bom-ref":"pkg:npm/echarts-for-react@3.0.5","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/echarts-for-react/package.json"},{"name":"ImportedModules","value":"echarts-for-react"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/echarts-for-react/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/echarts-for-react/package.json"}],"occurrences":[{"location":"dist/react/charts/base.js#4"},{"location":"tmp/dist/react/charts/base.js#4"},{"location":"src/react/charts/base.tsx#2"}]}},{"group":"","name":"echarts","version":"6.0.0","description":"Apache ECharts is a powerful, interactive charting and data visualization library for browser","scope":"required","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:npm/echarts@6.0.0","externalReferences":[{"type":"website","url":"https://echarts.apache.org"},{"type":"vcs","url":"git+https://github.com/apache/echarts.git"}],"type":"library","bom-ref":"pkg:npm/echarts@6.0.0","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/echarts/package.json"},{"name":"ImportedModules","value":"echarts,ECharts,echarts/ECharts"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/echarts/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/echarts/package.json"}],"occurrences":[{"location":"src/react/charts/base.tsx#1"}]}},{"authors":[{"name":"David Jerleke"}],"group":"","name":"embla-carousel-react","version":"8.6.0","description":"A lightweight carousel library with fluid motion and great swipe precision","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/embla-carousel-react@8.6.0","externalReferences":[{"type":"website","url":"https://www.embla-carousel.com"},{"type":"vcs","url":"git+https://github.com/davidjerleke/embla-carousel"}],"type":"library","bom-ref":"pkg:npm/embla-carousel-react@8.6.0","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/embla-carousel-react/package.json"},{"name":"ImportedModules","value":"embla-carousel-react,UseEmblaCarouselType,embla-carousel-react/UseEmblaCarouselType"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/embla-carousel-react/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/embla-carousel-react/package.json"}],"occurrences":[{"location":"dist/react/ui/carousel.js#6"},{"location":"tmp/dist/react/ui/carousel.js#6"},{"location":"src/react/ui/carousel.tsx#4"}]}},{"authors":[{"name":"Guilherme Rodz <g@rodz.dev>"}],"group":"","name":"input-otp","version":"1.4.2","description":"One-time password input component for React.","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/input-otp@1.4.2","externalReferences":[{"type":"website","url":"https://input-otp.rodz.dev/"},{"type":"vcs","url":"git+https://github.com/guilhermerodz/input-otp.git"}],"type":"library","bom-ref":"pkg:npm/input-otp@1.4.2","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/input-otp/package.json"},{"name":"ImportedModules","value":"input-otp,OTPInput,input-otp/OTPInput,OTPInputContext,input-otp/OTPInputContext"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/input-otp/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/input-otp/package.json"}],"occurrences":[{"location":"dist/react/ui/input-otp.js#5"},{"location":"tmp/dist/react/ui/input-otp.js#5"},{"location":"src/react/ui/input-otp.tsx#2"}]}},{"authors":[{"name":"Eric Fennis"}],"group":"","name":"lucide-react","version":"0.554.0","description":"A Lucide icon library package for React applications.","scope":"required","licenses":[{"license":{"id":"ISC","url":"https://opensource.org/licenses/ISC"}}],"purl":"pkg:npm/lucide-react@0.554.0","externalReferences":[{"type":"website","url":"https://lucide.dev"},{"type":"vcs","url":"https://github.com/lucide-icons/lucide.git"}],"type":"library","bom-ref":"pkg:npm/lucide-react@0.554.0","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/lucide-react/package.json"},{"name":"ImportedModules","value":"lucide-react,AlertCircle,lucide-react/AlertCircle,ArrowLeft,lucide-react/ArrowLeft,FileIcon,lucide-react/FileIcon,ChevronRight,lucide-react/ChevronRight,FolderIcon,lucide-react/FolderIcon,Download,lucide-react/Download,Loader2,lucide-react/Loader2,Trash2,lucide-react/Trash2,FolderPlus,lucide-react/FolderPlus,lucide-react/X,BarChart3Icon,lucide-react/BarChart3Icon,ChevronDownIcon,lucide-react/ChevronDownIcon,ChevronDown,lucide-react/ChevronDown,ArrowUpDown,lucide-react/ArrowUpDown,MoreHorizontal,lucide-react/MoreHorizontal,ChevronLeftIcon,lucide-react/ChevronLeftIcon,ChevronRightIcon,lucide-react/ChevronRightIcon,ArrowRight,lucide-react/ArrowRight,CheckIcon,lucide-react/CheckIcon,SearchIcon,lucide-react/SearchIcon,CircleIcon,lucide-react/CircleIcon,XIcon,lucide-react/XIcon,MinusIcon,lucide-react/MinusIcon,MoreHorizontalIcon,lucide-react/MoreHorizontalIcon,GripVerticalIcon,lucide-react/GripVerticalIcon,ChevronUpIcon,lucide-react/ChevronUpIcon,PanelLeftIcon,lucide-react/PanelLeftIcon,CircleCheckIcon,lucide-react/CircleCheckIcon,InfoIcon,lucide-react/InfoIcon,Loader2Icon,lucide-react/Loader2Icon,OctagonXIcon,lucide-react/OctagonXIcon,TriangleAlertIcon,lucide-react/TriangleAlertIcon"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/lucide-react/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/lucide-react/package.json"}],"occurrences":[{"location":"dist/react/file-browser/directory-list.js#6"},{"location":"dist/react/file-browser/file-entry.js#4"},{"location":"dist/react/file-browser/file-preview-panel.js#6"},{"location":"dist/react/file-browser/new-folder-input.js#5"},{"location":"dist/react/genie/genie-query-visualization.js#12"},{"location":"dist/react/table/data-table.js#9"},{"location":"dist/react/table/table-wrapper.js#11"},{"location":"dist/react/ui/accordion.js#3"},{"location":"dist/react/ui/breadcrumb.js#3"},{"location":"dist/react/ui/calendar.js#7"},{"location":"dist/react/ui/carousel.js#5"},{"location":"dist/react/ui/checkbox.js#5"},{"location":"dist/react/ui/command.js#4"},{"location":"dist/react/ui/context-menu.js#6"},{"location":"dist/react/ui/dialog.js#4"},{"location":"dist/react/ui/dropdown-menu.js#4"},{"location":"dist/react/ui/input-otp.js#4"},{"location":"dist/react/ui/menubar.js#4"},{"location":"dist/react/ui/navigation-menu.js#3"},{"location":"dist/react/ui/pagination.js#4"},{"location":"dist/react/ui/radio-group.js#5"},{"location":"dist/react/ui/resizable.js#3"},{"location":"dist/react/ui/select.js#4"},{"location":"dist/react/ui/sheet.js#4"},{"location":"dist/react/ui/sidebar.js#13"},{"location":"dist/react/ui/sonner.js#2"},{"location":"dist/react/ui/spinner.js#3"},{"location":"tmp/dist/react/file-browser/directory-list.js#6"},{"location":"tmp/dist/react/file-browser/file-entry.js#4"},{"location":"tmp/dist/react/file-browser/file-preview-panel.js#6"},{"location":"tmp/dist/react/file-browser/new-folder-input.js#5"},{"location":"tmp/dist/react/genie/genie-query-visualization.js#12"},{"location":"tmp/dist/react/table/data-table.js#9"},{"location":"tmp/dist/react/table/table-wrapper.js#11"},{"location":"tmp/dist/react/ui/accordion.js#3"},{"location":"tmp/dist/react/ui/breadcrumb.js#3"},{"location":"tmp/dist/react/ui/calendar.js#7"},{"location":"tmp/dist/react/ui/carousel.js#5"},{"location":"tmp/dist/react/ui/checkbox.js#5"},{"location":"tmp/dist/react/ui/command.js#4"},{"location":"tmp/dist/react/ui/context-menu.js#6"},{"location":"tmp/dist/react/ui/dialog.js#4"},{"location":"tmp/dist/react/ui/dropdown-menu.js#4"},{"location":"tmp/dist/react/ui/input-otp.js#4"},{"location":"tmp/dist/react/ui/menubar.js#4"},{"location":"tmp/dist/react/ui/navigation-menu.js#3"},{"location":"tmp/dist/react/ui/pagination.js#4"},{"location":"tmp/dist/react/ui/radio-group.js#5"},{"location":"tmp/dist/react/ui/resizable.js#3"},{"location":"tmp/dist/react/ui/select.js#4"},{"location":"tmp/dist/react/ui/sheet.js#4"},{"location":"tmp/dist/react/ui/sidebar.js#13"},{"location":"tmp/dist/react/ui/sonner.js#2"},{"location":"tmp/dist/react/ui/spinner.js#3"},{"location":"src/react/file-browser/directory-list.tsx#1"},{"location":"src/react/file-browser/file-entry.tsx#1"},{"location":"src/react/file-browser/file-preview-panel.tsx#1"},{"location":"src/react/file-browser/new-folder-input.tsx#1"},{"location":"src/react/genie/genie-query-visualization.tsx#1"},{"location":"src/react/table/data-table.tsx#2"},{"location":"src/react/table/table-wrapper.tsx#15"},{"location":"src/react/ui/accordion.tsx#3"},{"location":"src/react/ui/breadcrumb.tsx#3"},{"location":"src/react/ui/calendar.tsx#9"},{"location":"src/react/ui/carousel.tsx#5"},{"location":"src/react/ui/checkbox.tsx#5"},{"location":"src/react/ui/command.tsx#3"},{"location":"src/react/ui/context-menu.tsx#5"},{"location":"src/react/ui/dialog.tsx#3"},{"location":"src/react/ui/dropdown-menu.tsx#3"},{"location":"src/react/ui/input-otp.tsx#3"},{"location":"src/react/ui/menubar.tsx#3"},{"location":"src/react/ui/navigation-menu.tsx#4"},{"location":"src/react/ui/pagination.tsx#6"},{"location":"src/react/ui/radio-group.tsx#5"},{"location":"src/react/ui/resizable.tsx#2"},{"location":"src/react/ui/select.tsx#3"},{"location":"src/react/ui/sheet.tsx#3"},{"location":"src/react/ui/sidebar.tsx#6"},{"location":"src/react/ui/sonner.tsx#8"},{"location":"src/react/ui/spinner.tsx#2"}]}},{"authors":[{"name":"Christopher Jeffrey"}],"group":"","name":"marked","version":"17.0.3","description":"A markdown parser built for speed","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/marked@17.0.3","externalReferences":[{"type":"website","url":"https://marked.js.org"},{"type":"vcs","url":"git://github.com/markedjs/marked.git"}],"type":"library","bom-ref":"pkg:npm/marked@17.0.3","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/marked/package.json"},{"name":"ImportedModules","value":"marked,marked/marked"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/marked/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/marked/package.json"}],"occurrences":[{"location":"dist/react/genie/genie-chat-message.js#8"},{"location":"tmp/dist/react/genie/genie-chat-message.js#8"},{"location":"src/react/genie/genie-chat-message.tsx#2"}]}},{"group":"","name":"next-themes","version":"0.4.6","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/next-themes@0.4.6","externalReferences":[{"type":"vcs","url":"https://github.com/pacocoursey/next-themes.git"}],"type":"framework","bom-ref":"pkg:npm/next-themes@0.4.6","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/next-themes/package.json"},{"name":"ImportedModules","value":"next-themes,useTheme,next-themes/useTheme"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/next-themes/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/next-themes/package.json"}],"occurrences":[{"location":"dist/react/ui/sonner.js#3"},{"location":"tmp/dist/react/ui/sonner.js#3"},{"location":"src/react/ui/sonner.tsx#9"}]},"tags":["framework"]},{"authors":[{"name":"Giampaolo Bellavite <io@gpbl.dev>"}],"group":"","name":"react-day-picker","version":"9.12.0","description":"Customizable Date Picker for React","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/react-day-picker@9.12.0","externalReferences":[{"type":"website","url":"https://daypicker.dev"},{"type":"vcs","url":"https://github.com/gpbl/react-day-picker"}],"type":"framework","bom-ref":"pkg:npm/react-day-picker@9.12.0","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/react-day-picker/package.json"},{"name":"ImportedModules","value":"react-day-picker,DayPicker,react-day-picker/DayPicker,getDefaultClassNames,react-day-picker/getDefaultClassNames,DayButton,react-day-picker/DayButton"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/react-day-picker/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/react-day-picker/package.json"}],"occurrences":[{"location":"dist/react/ui/calendar.js#8"},{"location":"tmp/dist/react/ui/calendar.js#8"},{"location":"src/react/ui/calendar.tsx#10"}]},"tags":["framework"]},{"authors":[{"name":"Beier(Bill) Luo <bluebill1049@hotmail.com>"}],"group":"","name":"react-hook-form","version":"7.68.0","description":"Performant, flexible and extensible forms library for React Hooks","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/react-hook-form@7.68.0","externalReferences":[{"type":"website","url":"https://react-hook-form.com"},{"type":"vcs","url":"https://github.com/react-hook-form/react-hook-form"}],"type":"framework","bom-ref":"pkg:npm/react-hook-form@7.68.0","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/react-hook-form/package.json"},{"name":"ImportedModules","value":"react-hook-form,Controller,react-hook-form/Controller,FormProvider,react-hook-form/FormProvider,useFormContext,react-hook-form/useFormContext,useFormState,react-hook-form/useFormState,ControllerProps,react-hook-form/ControllerProps,FieldPath,react-hook-form/FieldPath,FieldValues,react-hook-form/FieldValues"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/react-hook-form/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/react-hook-form/package.json"}],"occurrences":[{"location":"dist/react/ui/form.js#8"},{"location":"tmp/dist/react/ui/form.js#8"},{"location":"src/react/ui/form.tsx#14"}]},"tags":["framework"]},{"authors":[{"name":"Brian Vaughn <brian.david.vaughn@gmail.com>"}],"group":"","name":"react-resizable-panels","version":"3.0.6","description":"React components for resizable panel groups/layouts","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/react-resizable-panels@3.0.6","externalReferences":[{"type":"vcs","url":"git+https://github.com/bvaughn/react-resizable-panels.git"}],"type":"framework","bom-ref":"pkg:npm/react-resizable-panels@3.0.6","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/react-resizable-panels/package.json"},{"name":"ImportedModules","value":"react-resizable-panels"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/react-resizable-panels/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/react-resizable-panels/package.json"}],"occurrences":[{"location":"dist/react/ui/resizable.js#4"},{"location":"tmp/dist/react/ui/resizable.js#4"},{"location":"src/react/ui/resizable.tsx#3"}]},"tags":["framework"]},{"group":"","name":"react","version":"19.2.0","description":"React is a JavaScript library for building user interfaces.","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/react@19.2.0","externalReferences":[{"type":"website","url":"https://react.dev/"},{"type":"vcs","url":"https://github.com/facebook/react.git"}],"type":"framework","bom-ref":"pkg:npm/react@19.2.0","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/react/package.json"},{"name":"ExportedModules","value":"react/charts/area,react/charts/bar,react/charts/heatmap,react/charts/line,react/charts/pie,react/charts/radar,react/charts/scatter,react/hooks/use-chart-data,react/charts/base,react/charts/create-chart,react/charts/wrapper,react/charts/normalize,react/charts/constants,react/charts/theme,react/charts/utils,react/charts/options,react/charts/types,react/lib/format,react/genie/genie-chart-inference,react/genie/genie-chat,react/genie/genie-chat-input,react/genie/genie-chat-message,react/genie/genie-chat-message-list,react/genie/genie-query-transform,react/genie/genie-query-visualization,react/genie/use-genie-chat,react/hooks/types,react/hooks/use-agent-chat,react/hooks/use-analytics-query,react/hooks/use-plugin-config,react/hooks/use-serving-invoke,react/hooks/use-serving-stream,DonutChart,pie/DonutChart,PieChart,pie/PieChart,UseChartDataOptions,.hooks/use-chart-data/UseChartDataOptions,UseChartDataResult,.hooks/use-chart-data/UseChartDataResult,useChartData,.hooks/use-chart-data/useChartData,use-chart-data/UseChartDataOptions,use-chart-data/UseChartDataResult,use-chart-data/useChartData,BaseChart,base/BaseChart,BaseChartProps,base/BaseChartProps,ChartWrapper,wrapper/ChartWrapper,ChartWrapperProps,wrapper/ChartWrapperProps,NormalizedHeatmapData,normalize/NormalizedHeatmapData,normalizeChartData,normalize/normalizeChartData,normalizeHeatmapData,normalize/normalizeHeatmapData,CHART_COLOR_VARS,constants/CHART_COLOR_VARS,CHART_COLOR_VARS_CATEGORICAL,constants/CHART_COLOR_VARS_CATEGORICAL,CHART_COLOR_VARS_DIVERGING,constants/CHART_COLOR_VARS_DIVERGING,CHART_COLOR_VARS_SEQUENTIAL,constants/CHART_COLOR_VARS_SEQUENTIAL,DATE_FIELD_PATTERNS,constants/DATE_FIELD_PATTERNS,FALLBACK_COLORS_CATEGORICAL,constants/FALLBACK_COLORS_CATEGORICAL,FALLBACK_COLORS_DIVERGING,constants/FALLBACK_COLORS_DIVERGING,FALLBACK_COLORS_SEQUENTIAL,constants/FALLBACK_COLORS_SEQUENTIAL,METADATA_DATE_PATTERNS,constants/METADATA_DATE_PATTERNS,NAME_FIELD_PATTERNS,constants/NAME_FIELD_PATTERNS,useAllThemeColors,theme/useAllThemeColors,useThemeColors,theme/useThemeColors,createTimeSeriesData,utils/createTimeSeriesData,formatLabel,utils/formatLabel,sortTimeSeriesAscending,utils/sortTimeSeriesAscending,toChartArray,utils/toChartArray,toChartValue,utils/toChartValue,truncateLabel,utils/truncateLabel,buildCartesianOption,options/buildCartesianOption,buildHeatmapOption,options/buildHeatmapOption,buildHorizontalBarOption,options/buildHorizontalBarOption,buildPieOption,options/buildPieOption,buildRadarOption,options/buildRadarOption,CartesianContext,options/CartesianContext,HeatmapContext,options/HeatmapContext,OptionBuilderContext,options/OptionBuilderContext,AreaChartProps,types/AreaChartProps,AreaChartSpecificProps,types/AreaChartSpecificProps,BarChartProps,types/BarChartProps,BarChartSpecificProps,types/BarChartSpecificProps,ChartBaseProps,types/ChartBaseProps,ChartColorPalette,types/ChartColorPalette,ChartData,types/ChartData,ChartType,types/ChartType,DataFormat,types/DataFormat,DataProps,types/DataProps,DonutChartProps,types/DonutChartProps,HeatmapChartProps,types/HeatmapChartProps,HeatmapChartSpecificProps,types/HeatmapChartSpecificProps,LineChartProps,types/LineChartProps,LineChartSpecificProps,types/LineChartSpecificProps,NormalizedChartData,types/NormalizedChartData,NormalizedChartDataBase,types/NormalizedChartDataBase,Orientation,types/Orientation,PieChartProps,types/PieChartProps,PieChartSpecificProps,types/PieChartSpecificProps,QueryProps,types/QueryProps,RadarChartProps,types/RadarChartProps,RadarChartSpecificProps,types/RadarChartSpecificProps,ScatterChartProps,types/ScatterChartProps,ScatterChartSpecificProps,types/ScatterChartSpecificProps,UnifiedChartProps,types/UnifiedChartProps,isArrowTable,types/isArrowTable,isDataProps,types/isDataProps,isQueryProps,types/isQueryProps,ChartInference,genie-chart-inference/ChartInference,getCompatibleChartTypes,genie-chart-inference/getCompatibleChartTypes,inferChartType,genie-chart-inference/inferChartType,ColumnCategory,genie-query-transform/ColumnCategory,GenieColumnMeta,genie-query-transform/GenieColumnMeta,TransformedGenieData,genie-query-transform/TransformedGenieData,transformGenieData,genie-query-transform/transformGenieData,AnalyticsFormat,types/AnalyticsFormat,InferResultByFormat,types/InferResultByFormat,InferRowType,types/InferRowType,InferServingChunk,types/InferServingChunk,InferServingRequest,types/InferServingRequest,InferServingResponse,types/InferServingResponse,PluginRegistry,types/PluginRegistry,QueryRegistry,types/QueryRegistry,ServingAlias,types/ServingAlias,ServingEndpointRegistry,types/ServingEndpointRegistry,TypedArrowTable,types/TypedArrowTable,UseAnalyticsQueryOptions,types/UseAnalyticsQueryOptions,UseAnalyticsQueryResult,types/UseAnalyticsQueryResult,AgentChatEvent,use-agent-chat/AgentChatEvent,UseAgentChatOptions,use-agent-chat/UseAgentChatOptions,UseAgentChatResult,use-agent-chat/UseAgentChatResult,useAgentChat,use-agent-chat/useAgentChat,UseServingInvokeOptions,use-serving-invoke/UseServingInvokeOptions,UseServingInvokeResult,use-serving-invoke/UseServingInvokeResult,useServingInvoke,use-serving-invoke/useServingInvoke,UseServingStreamOptions,use-serving-stream/UseServingStreamOptions,UseServingStreamResult,use-serving-stream/UseServingStreamResult,useServingStream,use-serving-stream/useServingStream"},{"name":"ImportedModules","value":"react,useCallback,react/useCallback,useMemo,react/useMemo,useRef,react/useRef,react/jsx-runtime,react/jsx-runtime/jsx,Component,react/Component,jsxs,react/jsx-runtime/jsxs,useEffect,react/useEffect,useState,react/useState,useLayoutEffect,react/useLayoutEffect,createContext,react/createContext,useContext,react/useContext,Fragment,react/jsx-runtime/Fragment,react/JSX,ReactNode,react/ReactNode,KeyboardEvent,react/KeyboardEvent"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/react/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/react/package.json"}],"occurrences":[{"location":"dist/react/charts/base.js#5"},{"location":"dist/react/charts/base.js#6"},{"location":"dist/react/charts/chart-error-boundary.js#1"},{"location":"dist/react/charts/chart-error-boundary.js#2"},{"location":"dist/react/charts/create-chart.js#3"},{"location":"dist/react/charts/empty.js#1"},{"location":"dist/react/charts/error.js#1"},{"location":"dist/react/charts/loading.js#1"},{"location":"dist/react/charts/theme.js#2"},{"location":"dist/react/charts/wrapper.js#7"},{"location":"dist/react/file-browser/directory-list.js#5"},{"location":"dist/react/file-browser/file-breadcrumb.js#2"},{"location":"dist/react/file-browser/file-entry.js#3"},{"location":"dist/react/file-browser/file-preview-panel.js#5"},{"location":"dist/react/file-browser/new-folder-input.js#3"},{"location":"dist/react/file-browser/new-folder-input.js#4"},{"location":"dist/react/genie/genie-chat-input.js#3"},{"location":"dist/react/genie/genie-chat-input.js#4"},{"location":"dist/react/genie/genie-chat-message-list.js#7"},{"location":"dist/react/genie/genie-chat-message-list.js#8"},{"location":"dist/react/genie/genie-chat-message.js#5"},{"location":"dist/react/genie/genie-chat-message.js#6"},{"location":"dist/react/genie/genie-chat.js#6"},{"location":"dist/react/genie/genie-query-visualization.js#10"},{"location":"dist/react/genie/genie-query-visualization.js#11"},{"location":"dist/react/genie/use-genie-chat.js#4"},{"location":"dist/react/hooks/use-agent-chat.js#3"},{"location":"dist/react/hooks/use-analytics-query.js#5"},{"location":"dist/react/hooks/use-chart-data.js#2"},{"location":"dist/react/hooks/use-mobile.js#1"},{"location":"dist/react/hooks/use-query-hmr.js#1"},{"location":"dist/react/hooks/use-serving-invoke.js#2"},{"location":"dist/react/hooks/use-serving-stream.js#4"},{"location":"dist/react/portal-container-context.js#1"},{"location":"dist/react/portal-container-context.js#2"},{"location":"dist/react/table/data-table.js#8"},{"location":"dist/react/table/empty.js#1"},{"location":"dist/react/table/error.js#1"},{"location":"dist/react/table/loading.js#1"},{"location":"dist/react/table/table-wrapper.js#9"},{"location":"dist/react/table/table-wrapper.js#10"},{"location":"dist/react/ui/accordion.js#2"},{"location":"dist/react/ui/alert-dialog.js#4"},{"location":"dist/react/ui/alert.js#2"},{"location":"dist/react/ui/aspect-ratio.js#3"},{"location":"dist/react/ui/avatar.js#2"},{"location":"dist/react/ui/badge.js#2"},{"location":"dist/react/ui/breadcrumb.js#2"},{"location":"dist/react/ui/button-group.js#3"},{"location":"dist/react/ui/button.js#2"},{"location":"dist/react/ui/calendar.js#5"},{"location":"dist/react/ui/calendar.js#6"},{"location":"dist/react/ui/card.js#2"},{"location":"dist/react/ui/carousel.js#3"},{"location":"dist/react/ui/carousel.js#4"},{"location":"dist/react/ui/chart.js#4"},{"location":"dist/react/ui/chart.js#5"},{"location":"dist/react/ui/checkbox.js#4"},{"location":"dist/react/ui/collapsible.js#1"},{"location":"dist/react/ui/command.js#3"},{"location":"dist/react/ui/context-menu.js#5"},{"location":"dist/react/ui/dialog.js#3"},{"location":"dist/react/ui/drawer.js#5"},{"location":"dist/react/ui/dropdown-menu.js#3"},{"location":"dist/react/ui/empty.js#2"},{"location":"dist/react/ui/field.js#4"},{"location":"dist/react/ui/field.js#5"},{"location":"dist/react/ui/form.js#5"},{"location":"dist/react/ui/form.js#6"},{"location":"dist/react/ui/hover-card.js#5"},{"location":"dist/react/ui/input-group.js#7"},{"location":"dist/react/ui/input-otp.js#2"},{"location":"dist/react/ui/input-otp.js#3"},{"location":"dist/react/ui/input.js#2"},{"location":"dist/react/ui/item.js#3"},{"location":"dist/react/ui/kbd.js#2"},{"location":"dist/react/ui/label.js#4"},{"location":"dist/react/ui/menubar.js#3"},{"location":"dist/react/ui/navigation-menu.js#2"},{"location":"dist/react/ui/pagination.js#3"},{"location":"dist/react/ui/popover.js#5"},{"location":"dist/react/ui/progress.js#2"},{"location":"dist/react/ui/radio-group.js#4"},{"location":"dist/react/ui/resizable.js#2"},{"location":"dist/react/ui/scroll-area.js#4"},{"location":"dist/react/ui/select.js#3"},{"location":"dist/react/ui/separator.js#4"},{"location":"dist/react/ui/sheet.js#3"},{"location":"dist/react/ui/sidebar.js#11"},{"location":"dist/react/ui/sidebar.js#12"},{"location":"dist/react/ui/skeleton.js#2"},{"location":"dist/react/ui/slider.js#4"},{"location":"dist/react/ui/slider.js#5"},{"location":"dist/react/ui/sonner.js#1"},{"location":"dist/react/ui/spinner.js#2"},{"location":"dist/react/ui/switch.js#4"},{"location":"dist/react/ui/table.js#2"},{"location":"dist/react/ui/tabs.js#4"},{"location":"dist/react/ui/textarea.js#2"},{"location":"dist/react/ui/toggle-group.js#3"},{"location":"dist/react/ui/toggle-group.js#4"},{"location":"dist/react/ui/toggle.js#2"},{"location":"dist/react/ui/tooltip.js#5"},{"location":"tmp/dist/react/charts/base.js#5"},{"location":"tmp/dist/react/charts/base.js#6"},{"location":"tmp/dist/react/charts/chart-error-boundary.js#1"},{"location":"tmp/dist/react/charts/chart-error-boundary.js#2"},{"location":"tmp/dist/react/charts/create-chart.js#3"},{"location":"tmp/dist/react/charts/empty.js#1"},{"location":"tmp/dist/react/charts/error.js#1"},{"location":"tmp/dist/react/charts/loading.js#1"},{"location":"tmp/dist/react/charts/theme.js#2"},{"location":"tmp/dist/react/charts/wrapper.js#7"},{"location":"tmp/dist/react/file-browser/directory-list.js#5"},{"location":"tmp/dist/react/file-browser/file-breadcrumb.js#2"},{"location":"tmp/dist/react/file-browser/file-entry.js#3"},{"location":"tmp/dist/react/file-browser/file-preview-panel.js#5"},{"location":"tmp/dist/react/file-browser/new-folder-input.js#3"},{"location":"tmp/dist/react/file-browser/new-folder-input.js#4"},{"location":"tmp/dist/react/genie/genie-chat-input.js#3"},{"location":"tmp/dist/react/genie/genie-chat-input.js#4"},{"location":"tmp/dist/react/genie/genie-chat-message-list.js#7"},{"location":"tmp/dist/react/genie/genie-chat-message-list.js#8"},{"location":"tmp/dist/react/genie/genie-chat-message.js#5"},{"location":"tmp/dist/react/genie/genie-chat-message.js#6"},{"location":"tmp/dist/react/genie/genie-chat.js#6"},{"location":"tmp/dist/react/genie/genie-query-visualization.js#10"},{"location":"tmp/dist/react/genie/genie-query-visualization.js#11"},{"location":"tmp/dist/react/genie/use-genie-chat.js#4"},{"location":"tmp/dist/react/hooks/use-agent-chat.js#3"},{"location":"tmp/dist/react/hooks/use-analytics-query.js#5"},{"location":"tmp/dist/react/hooks/use-chart-data.js#2"},{"location":"tmp/dist/react/hooks/use-mobile.js#1"},{"location":"tmp/dist/react/hooks/use-query-hmr.js#1"},{"location":"tmp/dist/react/hooks/use-serving-invoke.js#2"},{"location":"tmp/dist/react/hooks/use-serving-stream.js#4"},{"location":"tmp/dist/react/portal-container-context.js#1"},{"location":"tmp/dist/react/portal-container-context.js#2"},{"location":"tmp/dist/react/table/data-table.js#8"},{"location":"tmp/dist/react/table/empty.js#1"},{"location":"tmp/dist/react/table/error.js#1"},{"location":"tmp/dist/react/table/loading.js#1"},{"location":"tmp/dist/react/table/table-wrapper.js#9"},{"location":"tmp/dist/react/table/table-wrapper.js#10"},{"location":"tmp/dist/react/ui/accordion.js#2"},{"location":"tmp/dist/react/ui/alert-dialog.js#4"},{"location":"tmp/dist/react/ui/alert.js#2"},{"location":"tmp/dist/react/ui/aspect-ratio.js#3"},{"location":"tmp/dist/react/ui/avatar.js#2"},{"location":"tmp/dist/react/ui/badge.js#2"},{"location":"tmp/dist/react/ui/breadcrumb.js#2"},{"location":"tmp/dist/react/ui/button-group.js#3"},{"location":"tmp/dist/react/ui/button.js#2"},{"location":"tmp/dist/react/ui/calendar.js#5"},{"location":"tmp/dist/react/ui/calendar.js#6"},{"location":"tmp/dist/react/ui/card.js#2"},{"location":"tmp/dist/react/ui/carousel.js#3"},{"location":"tmp/dist/react/ui/carousel.js#4"},{"location":"tmp/dist/react/ui/chart.js#4"},{"location":"tmp/dist/react/ui/chart.js#5"},{"location":"tmp/dist/react/ui/checkbox.js#4"},{"location":"tmp/dist/react/ui/collapsible.js#1"},{"location":"tmp/dist/react/ui/command.js#3"},{"location":"tmp/dist/react/ui/context-menu.js#5"},{"location":"tmp/dist/react/ui/dialog.js#3"},{"location":"tmp/dist/react/ui/drawer.js#5"},{"location":"tmp/dist/react/ui/dropdown-menu.js#3"},{"location":"tmp/dist/react/ui/empty.js#2"},{"location":"tmp/dist/react/ui/field.js#4"},{"location":"tmp/dist/react/ui/field.js#5"},{"location":"tmp/dist/react/ui/form.js#5"},{"location":"tmp/dist/react/ui/form.js#6"},{"location":"tmp/dist/react/ui/hover-card.js#5"},{"location":"tmp/dist/react/ui/input-group.js#7"},{"location":"tmp/dist/react/ui/input-otp.js#2"},{"location":"tmp/dist/react/ui/input-otp.js#3"},{"location":"tmp/dist/react/ui/input.js#2"},{"location":"tmp/dist/react/ui/item.js#3"},{"location":"tmp/dist/react/ui/kbd.js#2"},{"location":"tmp/dist/react/ui/label.js#4"},{"location":"tmp/dist/react/ui/menubar.js#3"},{"location":"tmp/dist/react/ui/navigation-menu.js#2"},{"location":"tmp/dist/react/ui/pagination.js#3"},{"location":"tmp/dist/react/ui/popover.js#5"},{"location":"tmp/dist/react/ui/progress.js#2"},{"location":"tmp/dist/react/ui/radio-group.js#4"},{"location":"tmp/dist/react/ui/resizable.js#2"},{"location":"tmp/dist/react/ui/scroll-area.js#4"},{"location":"tmp/dist/react/ui/select.js#3"},{"location":"tmp/dist/react/ui/separator.js#4"},{"location":"tmp/dist/react/ui/sheet.js#3"},{"location":"tmp/dist/react/ui/sidebar.js#11"},{"location":"tmp/dist/react/ui/sidebar.js#12"},{"location":"tmp/dist/react/ui/skeleton.js#2"},{"location":"tmp/dist/react/ui/slider.js#4"},{"location":"tmp/dist/react/ui/slider.js#5"},{"location":"tmp/dist/react/ui/sonner.js#1"},{"location":"tmp/dist/react/ui/spinner.js#2"},{"location":"tmp/dist/react/ui/switch.js#4"},{"location":"tmp/dist/react/ui/table.js#2"},{"location":"tmp/dist/react/ui/tabs.js#4"},{"location":"tmp/dist/react/ui/textarea.js#2"},{"location":"tmp/dist/react/ui/toggle-group.js#3"},{"location":"tmp/dist/react/ui/toggle-group.js#4"},{"location":"tmp/dist/react/ui/toggle.js#2"},{"location":"tmp/dist/react/ui/tooltip.js#5"},{"location":"src/react/charts/theme.ts#1"},{"location":"src/react/genie/use-genie-chat.ts#1"},{"location":"src/react/hooks/use-agent-chat.ts#1"},{"location":"src/react/hooks/use-analytics-query.ts#1"},{"location":"src/react/hooks/use-chart-data.ts#2"},{"location":"src/react/hooks/use-mobile.ts#1"},{"location":"src/react/hooks/use-query-hmr.ts#1"},{"location":"src/react/hooks/use-serving-invoke.ts#1"},{"location":"src/react/hooks/use-serving-stream.ts#1"},{"location":"src/react/charts/area/index.tsx#1"},{"location":"src/react/charts/bar/index.tsx#1"},{"location":"src/react/charts/base.tsx#3"},{"location":"src/react/charts/chart-error-boundary.tsx#1"},{"location":"src/react/charts/heatmap/index.tsx#1"},{"location":"src/react/charts/line/index.tsx#1"},{"location":"src/react/charts/pie/index.tsx#1"},{"location":"src/react/charts/radar/index.tsx#1"},{"location":"src/react/charts/scatter/index.tsx#1"},{"location":"src/react/charts/wrapper.tsx#1"},{"location":"src/react/file-browser/new-folder-input.tsx#2"},{"location":"src/react/genie/genie-chat-input.tsx#1"},{"location":"src/react/genie/genie-chat-message-list.tsx#1"},{"location":"src/react/genie/genie-chat-message.tsx#3"},{"location":"src/react/genie/genie-query-visualization.tsx#2"},{"location":"src/react/portal-container-context.tsx#1"},{"location":"src/react/portal-container-context.tsx#2"},{"location":"src/react/table/table-wrapper.tsx#16"},{"location":"src/react/ui/accordion.tsx#1"},{"location":"src/react/ui/alert-dialog.tsx#1"},{"location":"src/react/ui/alert.tsx#1"},{"location":"src/react/ui/avatar.tsx#1"},{"location":"src/react/ui/badge.tsx#1"},{"location":"src/react/ui/breadcrumb.tsx#1"},{"location":"src/react/ui/button.tsx#1"},{"location":"src/react/ui/calendar.tsx#4"},{"location":"src/react/ui/card.tsx#1"},{"location":"src/react/ui/carousel.tsx#1"},{"location":"src/react/ui/chart.tsx#3"},{"location":"src/react/ui/checkbox.tsx#3"},{"location":"src/react/ui/command.tsx#1"},{"location":"src/react/ui/context-menu.tsx#3"},{"location":"src/react/ui/dialog.tsx#1"},{"location":"src/react/ui/drawer.tsx#3"},{"location":"src/react/ui/dropdown-menu.tsx#1"},{"location":"src/react/ui/field.tsx#1"},{"location":"src/react/ui/form.tsx#3"},{"location":"src/react/ui/hover-card.tsx#3"},{"location":"src/react/ui/input-group.tsx#3"},{"location":"src/react/ui/input-otp.tsx#1"},{"location":"src/react/ui/input.tsx#1"},{"location":"src/react/ui/item.tsx#1"},{"location":"src/react/ui/label.tsx#3"},{"location":"src/react/ui/menubar.tsx#1"},{"location":"src/react/ui/navigation-menu.tsx#1"},{"location":"src/react/ui/pagination.tsx#1"},{"location":"src/react/ui/popover.tsx#3"},{"location":"src/react/ui/progress.tsx#1"},{"location":"src/react/ui/radio-group.tsx#3"},{"location":"src/react/ui/resizable.tsx#1"},{"location":"src/react/ui/scroll-area.tsx#3"},{"location":"src/react/ui/select.tsx#1"},{"location":"src/react/ui/separator.tsx#3"},{"location":"src/react/ui/sheet.tsx#1"},{"location":"src/react/ui/sidebar.tsx#3"},{"location":"src/react/ui/slider.tsx#3"},{"location":"src/react/ui/switch.tsx#3"},{"location":"src/react/ui/table.tsx#1"},{"location":"src/react/ui/tabs.tsx#3"},{"location":"src/react/ui/textarea.tsx#1"},{"location":"src/react/ui/toggle-group.tsx#1"},{"location":"src/react/ui/toggle.tsx#1"},{"location":"src/react/ui/tooltip.tsx#3"},{"location":"dist/react/charts/base.js#6"},{"location":"dist/react/charts/chart-error-boundary.js#2"},{"location":"dist/react/charts/create-chart.js#3"},{"location":"dist/react/charts/empty.js#1"},{"location":"dist/react/charts/error.js#1"},{"location":"dist/react/charts/loading.js#1"},{"location":"dist/react/charts/wrapper.js#7"},{"location":"dist/react/file-browser/directory-list.js#5"},{"location":"dist/react/file-browser/file-breadcrumb.js#2"},{"location":"dist/react/file-browser/file-entry.js#3"},{"location":"dist/react/file-browser/file-preview-panel.js#5"},{"location":"dist/react/file-browser/new-folder-input.js#4"},{"location":"dist/react/genie/genie-chat-input.js#4"},{"location":"dist/react/genie/genie-chat-message-list.js#8"},{"location":"dist/react/genie/genie-chat-message.js#6"},{"location":"dist/react/genie/genie-chat.js#6"},{"location":"dist/react/genie/genie-query-visualization.js#11"},{"location":"dist/react/portal-container-context.js#2"},{"location":"dist/react/table/data-table.js#8"},{"location":"dist/react/table/empty.js#1"},{"location":"dist/react/table/error.js#1"},{"location":"dist/react/table/loading.js#1"},{"location":"dist/react/table/table-wrapper.js#10"},{"location":"dist/react/ui/accordion.js#2"},{"location":"dist/react/ui/alert-dialog.js#4"},{"location":"dist/react/ui/alert.js#2"},{"location":"dist/react/ui/aspect-ratio.js#3"},{"location":"dist/react/ui/avatar.js#2"},{"location":"dist/react/ui/badge.js#2"},{"location":"dist/react/ui/breadcrumb.js#2"},{"location":"dist/react/ui/button-group.js#3"},{"location":"dist/react/ui/button.js#2"},{"location":"dist/react/ui/calendar.js#6"},{"location":"dist/react/ui/card.js#2"},{"location":"dist/react/ui/carousel.js#4"},{"location":"dist/react/ui/chart.js#5"},{"location":"dist/react/ui/checkbox.js#4"},{"location":"dist/react/ui/collapsible.js#1"},{"location":"dist/react/ui/command.js#3"},{"location":"dist/react/ui/context-menu.js#5"},{"location":"dist/react/ui/dialog.js#3"},{"location":"dist/react/ui/drawer.js#5"},{"location":"dist/react/ui/dropdown-menu.js#3"},{"location":"dist/react/ui/empty.js#2"},{"location":"dist/react/ui/field.js#5"},{"location":"dist/react/ui/form.js#6"},{"location":"dist/react/ui/hover-card.js#5"},{"location":"dist/react/ui/input-group.js#7"},{"location":"dist/react/ui/input-otp.js#3"},{"location":"dist/react/ui/input.js#2"},{"location":"dist/react/ui/item.js#3"},{"location":"dist/react/ui/kbd.js#2"},{"location":"dist/react/ui/label.js#4"},{"location":"dist/react/ui/menubar.js#3"},{"location":"dist/react/ui/navigation-menu.js#2"},{"location":"dist/react/ui/pagination.js#3"},{"location":"dist/react/ui/popover.js#5"},{"location":"dist/react/ui/progress.js#2"},{"location":"dist/react/ui/radio-group.js#4"},{"location":"dist/react/ui/resizable.js#2"},{"location":"dist/react/ui/scroll-area.js#4"},{"location":"dist/react/ui/select.js#3"},{"location":"dist/react/ui/separator.js#4"},{"location":"dist/react/ui/sheet.js#3"},{"location":"dist/react/ui/sidebar.js#12"},{"location":"dist/react/ui/skeleton.js#2"},{"location":"dist/react/ui/slider.js#5"},{"location":"dist/react/ui/sonner.js#1"},{"location":"dist/react/ui/spinner.js#2"},{"location":"dist/react/ui/switch.js#4"},{"location":"dist/react/ui/table.js#2"},{"location":"dist/react/ui/tabs.js#4"},{"location":"dist/react/ui/textarea.js#2"},{"location":"dist/react/ui/toggle-group.js#4"},{"location":"dist/react/ui/toggle.js#2"},{"location":"dist/react/ui/tooltip.js#5"},{"location":"tmp/dist/react/charts/base.js#6"},{"location":"tmp/dist/react/charts/chart-error-boundary.js#2"},{"location":"tmp/dist/react/charts/create-chart.js#3"},{"location":"tmp/dist/react/charts/empty.js#1"},{"location":"tmp/dist/react/charts/error.js#1"},{"location":"tmp/dist/react/charts/loading.js#1"},{"location":"tmp/dist/react/charts/wrapper.js#7"},{"location":"tmp/dist/react/file-browser/directory-list.js#5"},{"location":"tmp/dist/react/file-browser/file-breadcrumb.js#2"},{"location":"tmp/dist/react/file-browser/file-entry.js#3"},{"location":"tmp/dist/react/file-browser/file-preview-panel.js#5"},{"location":"tmp/dist/react/file-browser/new-folder-input.js#4"},{"location":"tmp/dist/react/genie/genie-chat-input.js#4"},{"location":"tmp/dist/react/genie/genie-chat-message-list.js#8"},{"location":"tmp/dist/react/genie/genie-chat-message.js#6"},{"location":"tmp/dist/react/genie/genie-chat.js#6"},{"location":"tmp/dist/react/genie/genie-query-visualization.js#11"},{"location":"tmp/dist/react/portal-container-context.js#2"},{"location":"tmp/dist/react/table/data-table.js#8"},{"location":"tmp/dist/react/table/empty.js#1"},{"location":"tmp/dist/react/table/error.js#1"},{"location":"tmp/dist/react/table/loading.js#1"},{"location":"tmp/dist/react/table/table-wrapper.js#10"},{"location":"tmp/dist/react/ui/accordion.js#2"},{"location":"tmp/dist/react/ui/alert-dialog.js#4"},{"location":"tmp/dist/react/ui/alert.js#2"},{"location":"tmp/dist/react/ui/aspect-ratio.js#3"},{"location":"tmp/dist/react/ui/avatar.js#2"},{"location":"tmp/dist/react/ui/badge.js#2"},{"location":"tmp/dist/react/ui/breadcrumb.js#2"},{"location":"tmp/dist/react/ui/button-group.js#3"},{"location":"tmp/dist/react/ui/button.js#2"},{"location":"tmp/dist/react/ui/calendar.js#6"},{"location":"tmp/dist/react/ui/card.js#2"},{"location":"tmp/dist/react/ui/carousel.js#4"},{"location":"tmp/dist/react/ui/chart.js#5"},{"location":"tmp/dist/react/ui/checkbox.js#4"},{"location":"tmp/dist/react/ui/collapsible.js#1"},{"location":"tmp/dist/react/ui/command.js#3"},{"location":"tmp/dist/react/ui/context-menu.js#5"},{"location":"tmp/dist/react/ui/dialog.js#3"},{"location":"tmp/dist/react/ui/drawer.js#5"},{"location":"tmp/dist/react/ui/dropdown-menu.js#3"},{"location":"tmp/dist/react/ui/empty.js#2"},{"location":"tmp/dist/react/ui/field.js#5"},{"location":"tmp/dist/react/ui/form.js#6"},{"location":"tmp/dist/react/ui/hover-card.js#5"},{"location":"tmp/dist/react/ui/input-group.js#7"},{"location":"tmp/dist/react/ui/input-otp.js#3"},{"location":"tmp/dist/react/ui/input.js#2"},{"location":"tmp/dist/react/ui/item.js#3"},{"location":"tmp/dist/react/ui/kbd.js#2"},{"location":"tmp/dist/react/ui/label.js#4"},{"location":"tmp/dist/react/ui/menubar.js#3"},{"location":"tmp/dist/react/ui/navigation-menu.js#2"},{"location":"tmp/dist/react/ui/pagination.js#3"},{"location":"tmp/dist/react/ui/popover.js#5"},{"location":"tmp/dist/react/ui/progress.js#2"},{"location":"tmp/dist/react/ui/radio-group.js#4"},{"location":"tmp/dist/react/ui/resizable.js#2"},{"location":"tmp/dist/react/ui/scroll-area.js#4"},{"location":"tmp/dist/react/ui/select.js#3"},{"location":"tmp/dist/react/ui/separator.js#4"},{"location":"tmp/dist/react/ui/sheet.js#3"},{"location":"tmp/dist/react/ui/sidebar.js#12"},{"location":"tmp/dist/react/ui/skeleton.js#2"},{"location":"tmp/dist/react/ui/slider.js#5"},{"location":"tmp/dist/react/ui/sonner.js#1"},{"location":"tmp/dist/react/ui/spinner.js#2"},{"location":"tmp/dist/react/ui/switch.js#4"},{"location":"tmp/dist/react/ui/table.js#2"},{"location":"tmp/dist/react/ui/tabs.js#4"},{"location":"tmp/dist/react/ui/textarea.js#2"},{"location":"tmp/dist/react/ui/toggle-group.js#4"},{"location":"tmp/dist/react/ui/toggle.js#2"},{"location":"tmp/dist/react/ui/tooltip.js#5"}]},"tags":["framework"]},{"authors":[{"name":"recharts group"}],"group":"","name":"recharts","version":"2.15.4","description":"React charts","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/recharts@2.15.4","externalReferences":[{"type":"vcs","url":"https://github.com/recharts/recharts"},{"type":"vcs","url":"git+https://github.com/recharts/recharts.git"}],"type":"library","bom-ref":"pkg:npm/recharts@2.15.4","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/recharts/package.json"},{"name":"ImportedModules","value":"recharts"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/recharts/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/recharts/package.json"}],"occurrences":[{"location":"dist/react/ui/chart.js#6"},{"location":"tmp/dist/react/ui/chart.js#6"},{"location":"src/react/ui/chart.tsx#4"}]}},{"group":"","name":"shared","version":"0.0.1","scope":"required","purl":"pkg:npm/shared@0.0.1","type":"library","bom-ref":"pkg:npm/shared@0.0.1","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/shared/package.json"},{"name":"ExportedModules","value":"shared,isSQLTypeMarker,shared/isSQLTypeMarker,SQLBinaryMarker,shared/SQLBinaryMarker,SQLBooleanMarker,shared/SQLBooleanMarker,SQLDateMarker,shared/SQLDateMarker,SQLNumberMarker,shared/SQLNumberMarker,SQLStringMarker,shared/SQLStringMarker,SQLTimestampMarker,shared/SQLTimestampMarker,SQLTypeMarker,shared/SQLTypeMarker,shared/sql,GenieAttachmentResponse,shared/GenieAttachmentResponse,GenieMessageResponse,shared/GenieMessageResponse,GenieStatementResponse,shared/GenieStatementResponse,GenieStreamEvent,shared/GenieStreamEvent"},{"name":"ImportedModules","value":"shared,GenieStatementResponse,shared/GenieStatementResponse,GenieAttachmentResponse,shared/GenieAttachmentResponse"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/shared/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/shared/package.json"}],"occurrences":[{"location":"src/js/index.ts#11"},{"location":"src/react/genie/genie-query-transform.ts#11"},{"location":"src/react/genie/types.ts#1"},{"location":"src/react/genie/types.ts#8"},{"location":"src/react/genie/genie-query-visualization.tsx#3"}]},"tags":["sql"]},{"authors":[{"name":"Emil Kowalski <e@emilkowal.ski>"}],"group":"","name":"sonner","version":"2.0.7","description":"An opinionated toast component for React.","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/sonner@2.0.7","externalReferences":[{"type":"website","url":"https://sonner.emilkowal.ski/"},{"type":"vcs","url":"git+https://github.com/emilkowalski/sonner.git"}],"type":"library","bom-ref":"pkg:npm/sonner@2.0.7","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/sonner/package.json"},{"name":"ImportedModules","value":"sonner,Toaster,sonner/Toaster,ToasterProps,sonner/ToasterProps"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/sonner/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/sonner/package.json"}],"occurrences":[{"location":"dist/react/ui/sonner.js#4"},{"location":"tmp/dist/react/ui/sonner.js#4"},{"location":"src/react/ui/sonner.tsx#10"}]}},{"authors":[{"name":"Dany Castillo"}],"group":"","name":"tailwind-merge","version":"3.4.0","description":"Merge Tailwind CSS classes without style conflicts","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/tailwind-merge@3.4.0","externalReferences":[{"type":"vcs","url":"https://github.com/dcastil/tailwind-merge"},{"type":"vcs","url":"https://github.com/dcastil/tailwind-merge.git"}],"type":"library","bom-ref":"pkg:npm/tailwind-merge@3.4.0","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/tailwind-merge/package.json"},{"name":"ImportedModules","value":"tailwind-merge,twMerge,tailwind-merge/twMerge"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/tailwind-merge/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/tailwind-merge/package.json"}],"occurrences":[{"location":"dist/react/lib/utils.js#2"},{"location":"tmp/dist/react/lib/utils.js#2"},{"location":"src/react/lib/utils.ts#2"}]}},{"authors":[{"name":"Emil Kowalski <e@emilkowal.ski>"}],"group":"","name":"vaul","version":"1.1.2","description":"Drawer component for React.","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/vaul@1.1.2","externalReferences":[{"type":"website","url":"https://vaul.emilkowal.ski/"},{"type":"vcs","url":"https://github.com/emilkowalski/vaul.git"}],"type":"library","bom-ref":"pkg:npm/vaul@1.1.2","properties":[{"name":"SrcFile","value":"packages/appkit-ui/node_modules/vaul/package.json"},{"name":"ImportedModules","value":"vaul,Drawer,vaul/Drawer"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/appkit-ui/node_modules/vaul/package.json"}],"concludedValue":"packages/appkit-ui/node_modules/vaul/package.json"}],"occurrences":[{"location":"dist/react/ui/drawer.js#6"},{"location":"tmp/dist/react/ui/drawer.js#6"},{"location":"src/react/ui/drawer.tsx#4"}]}}],"dependencies":[],"compositions":[{"bom-ref":"pkg:npm/@databricks/appkit-ui@0.35.0","aggregate":"incomplete"}],"annotations":[{"bom-ref":"metadata-annotations","subjects":["pkg:npm/@databricks/appkit-ui@0.35.0"],"annotator":{"component":{"group":"@cyclonedx","name":"cdxgen","version":"12.1.2","purl":"pkg:npm/%40cyclonedx/cdxgen@12.1.2","type":"application","bom-ref":"pkg:npm/@cyclonedx/cdxgen@12.1.2","publisher":"OWASP Foundation","authors":[{"name":"OWASP Foundation"}]}},"timestamp":"2026-05-14T13:31:16Z","text":"This Software Bill-of-Materials (SBOM) document was created on Thursday, May 14, 2026 with cdxgen. The data was captured during the build lifecycle phase. The document describes an application named 'appkit-ui' with version '0.35.0'. There are 48 components. The package type in this SBOM is npm with 2 purl namespaces described under components. The components were identified from 48 source files."}]}