@odigos/ui-kit 0.0.287 → 0.0.289
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/.cursor/rules/frontend-workflow.mdc +27 -0
- package/.cursor/rules/ui-feedback-tables-forms.mdc +40 -0
- package/.cursor/rules/ui-implementation.mdc +21 -0
- package/.cursor/rules/ui-pages-and-drawers.mdc +34 -0
- package/.cursor/rules/ui-visual-language.mdc +27 -0
- package/CHANGELOG.md +30 -0
- package/lib/chunks/{helpers-CtkwQ3Wc.js → helpers-Ds7r-EIJ.js} +1 -1
- package/lib/chunks/index-DiYN36pr.js +351 -0
- package/lib/chunks/source-instrument-form-context-CBP9xXNN.js +5 -0
- package/lib/chunks/{ui-components-CjgsN17j.js → ui-components-Dvmqmy3G.js} +93 -84
- package/lib/components/table/types.d.ts +2 -2
- package/lib/components/trace-view/styled.d.ts +51 -34
- package/lib/components/trace-view/types.d.ts +4 -0
- package/lib/components.js +1 -1
- package/lib/constants/strings/index.d.ts +6 -0
- package/lib/constants.js +1 -1
- package/lib/containers/_drawers/edit-source-drawer/overview/instructions-card.d.ts +21 -0
- package/lib/containers/_modals/sampling-onboarding-modal/common/chrome.d.ts +14 -10
- package/lib/containers/_modals/sampling-onboarding-modal/common/section.d.ts +9 -3
- package/lib/containers/insights/findings/drawer/anomaly/risk-breakdown/helpers.d.ts +23 -0
- package/lib/containers/insights/findings/drawer/anomaly/risk-breakdown/index.d.ts +9 -0
- package/lib/containers/insights/operation-identity.d.ts +22 -0
- package/lib/containers/insights/overview/contained-table-and-heading/index.d.ts +2 -1
- package/lib/containers/insights/settings-and-configurations/panels/detection/create-override-panel.d.ts +1 -1
- package/lib/containers/insights/settings-and-configurations/panels/guardrails/constants.d.ts +6 -1
- package/lib/containers/insights/settings-and-configurations/panels/guardrails/facet-section.d.ts +1 -0
- package/lib/containers/insights/settings-and-configurations/panels/guardrails/mappers.d.ts +2 -0
- package/lib/containers/insights/settings-and-configurations/panels/learning/mappers.d.ts +2 -1
- package/lib/containers/insights/settings-and-configurations/panels/storage/layout.d.ts +12 -4
- package/lib/containers/insights/settings-and-configurations/panels/system/constants.d.ts +19 -1
- package/lib/containers/insights/transactions/helpers.d.ts +16 -3
- package/lib/containers.js +606 -478
- package/lib/contexts/odigos-api/capabilities.d.ts +2 -0
- package/lib/contexts/odigos-api/hooks/use-insights-api.d.ts +19 -2
- package/lib/contexts/odigos-api/hooks/use-sources-api.d.ts +10 -1
- package/lib/contexts/odigos-api/index.d.ts +1 -1
- package/lib/contexts/odigos-api/types.d.ts +48 -1
- package/lib/contexts.js +1 -1
- package/lib/functions.js +1 -1
- package/lib/hooks.js +1 -1
- package/lib/{containers/insights/findings/drawer/anomaly/anomaly-blast-radius → snippets/blast-radius}/helpers.d.ts +7 -6
- package/lib/snippets/blast-radius/index.d.ts +7 -0
- package/lib/snippets/index.d.ts +1 -0
- package/lib/snippets/sampling-rule-form-sections/styled.d.ts +6 -2
- package/lib/snippets.js +1 -1
- package/lib/store.js +1 -1
- package/lib/theme/palettes/index.d.ts +1 -0
- package/lib/theme.js +1 -1
- package/lib/types/insights/index.d.ts +68 -13
- package/lib/types/workload/index.d.ts +61 -0
- package/lib/types.js +1 -1
- package/lib/visuals.js +1 -1
- package/package.json +27 -24
- package/lib/chunks/index-BlYPxLja.js +0 -311
- package/lib/chunks/source-instrument-form-context-Bg6JzU76.js +0 -5
- package/lib/containers/insights/findings/drawer/anomaly/anomaly-blast-radius/index.d.ts +0 -7
- /package/lib/{containers/insights/findings/drawer/anomaly/anomaly-blast-radius → snippets/blast-radius}/animated-edge.d.ts +0 -0
- /package/lib/{containers/insights/findings/drawer/anomaly/anomaly-blast-radius → snippets/blast-radius}/blast-radius-node.d.ts +0 -0
- /package/lib/{containers/insights/findings/drawer/anomaly/anomaly-blast-radius → snippets/blast-radius}/types.d.ts +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Frontend implementation without a dedicated designer — reuse existing Odigos UI, do not block on Figma
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Odigos frontend workflow
|
|
7
|
+
|
|
8
|
+
The frontend team is two developers. Alon owns technical direction and UX decisions. There is no dedicated designer and no Figma requirement before implementation.
|
|
9
|
+
|
|
10
|
+
Apply this only to frontend/UI work in this design-system repo.
|
|
11
|
+
|
|
12
|
+
## How to implement
|
|
13
|
+
|
|
14
|
+
- Do not treat Figma as a hard dependency. Start from the product requirement plus existing screens, shared components, and similar flows.
|
|
15
|
+
- Search the repo for an existing implementation before proposing a new pattern, layout, or interaction.
|
|
16
|
+
- Prefer existing ui-kit components, layouts, and already-shipped Odigos screens over new visual conventions.
|
|
17
|
+
- Consistency with the current product matters more than novelty. Do not invent design debt to move faster.
|
|
18
|
+
- A first implementation can start from a clear product/UX spec. Visual polish comes after review and iteration.
|
|
19
|
+
|
|
20
|
+
## When something is ambiguous
|
|
21
|
+
|
|
22
|
+
- If the decision can be derived from an existing Odigos screen or component, follow that.
|
|
23
|
+
- If it cannot, surface the UX decision explicitly and treat Alon as the design owner. Do not silently invent a new pattern.
|
|
24
|
+
|
|
25
|
+
## Encoding design knowledge
|
|
26
|
+
|
|
27
|
+
When a UI pattern is reused or decided, prefer capturing it in shared components, examples, or a Cursor rule over leaving it as tribal knowledge.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Odigos feedback, tables, and forms — Badge, Note, Table, NoData, shared fields
|
|
3
|
+
globs: **/*.{ts,tsx}
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Feedback, tables, and forms
|
|
8
|
+
|
|
9
|
+
**Status and feedback**
|
|
10
|
+
|
|
11
|
+
- Pill/status: `Badge` + `StatusType`
|
|
12
|
+
- Inline or in-page banner: `Note`
|
|
13
|
+
- Global toast: `ToastList` via the notification store
|
|
14
|
+
- Empty: `NoData` (icon, title, subtitle, optional CTA)
|
|
15
|
+
- Loading: `Loader` or table `SkeletonLoader`
|
|
16
|
+
- Conditions/health: `Condition` / `Conditions` / `StatusCard`
|
|
17
|
+
- There is no `Alert` or `Snackbar` component
|
|
18
|
+
|
|
19
|
+
**Tables**
|
|
20
|
+
|
|
21
|
+
- Use `Table` (`TableVariant.Data` or `Pretty`)
|
|
22
|
+
- Loading: `isLoading`
|
|
23
|
+
- Empty: `noDataProps` → `NoData`
|
|
24
|
+
- Row actions: `getRowActions` / `HoverAction`
|
|
25
|
+
- Wrap with `SectionCard` + `Search` like `CentralConnections` or `RulesTable`
|
|
26
|
+
|
|
27
|
+
**Forms**
|
|
28
|
+
|
|
29
|
+
- Fields: `Input`, `Textarea`, `Checkbox`, `Toggle`, `DropDown`, `Autocomplete`, `InputList`, `InputTable`, `FieldTitle`, `FieldMessage`
|
|
30
|
+
- Catalog/YAML-driven fields: `DynamicField`
|
|
31
|
+
- Drawer forms: save/cancel in `WideDrawer` footer; dirty close → `CancelModal`
|
|
32
|
+
- Settings forms: save/cancel on `Island`
|
|
33
|
+
- Labels/validation: `BUTTON_TEXTS`, `FORM_ALERTS`
|
|
34
|
+
|
|
35
|
+
@src/components/badge/index.tsx
|
|
36
|
+
@src/components/note/index.tsx
|
|
37
|
+
@src/components/no-data/index.tsx
|
|
38
|
+
@src/components/table/index.tsx
|
|
39
|
+
@src/components/input/index.tsx
|
|
40
|
+
@src/containers/toast-list/index.tsx
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Frontend/UI work — search existing Odigos patterns before inventing new UI
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# UI implementation
|
|
7
|
+
|
|
8
|
+
There is no dedicated designer. Infer the first implementation from the product requirement and existing Odigos UI. Alon owns UX decisions that cannot be derived from the product.
|
|
9
|
+
|
|
10
|
+
Before creating a new UI pattern:
|
|
11
|
+
|
|
12
|
+
1. Search ui-kit (`src/components`, `src/containers`, `src/snippets`) and shipped screens for a similar implementation.
|
|
13
|
+
2. Prefer existing shared components over new ones.
|
|
14
|
+
3. Do not invent new colors, type sizes, or visual conventions. Use `theme.v2` and existing component styles.
|
|
15
|
+
4. Side-panel create/edit/detail flows use `Drawer` or `WideDrawer`, not a new page.
|
|
16
|
+
5. Status uses `Badge` + `StatusType`. Inline/page feedback uses `Note`. Toasts use `ToastList`. There is no `Alert` or `Snackbar`.
|
|
17
|
+
6. Tables use `Table` with `isLoading` (`SkeletonLoader`) and `noDataProps` (`NoData`).
|
|
18
|
+
7. New pages follow an existing container structure (Overview, table page, Settings, or graph). Do not invent a generic List/Detail/Settings page type.
|
|
19
|
+
8. If no suitable pattern exists, flag it explicitly before inventing a new one. Do not silently create design debt.
|
|
20
|
+
|
|
21
|
+
Canonical examples live in Storybook container stories and `src/containers/*/story.stories.tsx`.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Odigos page layouts and drawer flows — Overview, table pages, Settings, Drawer, WideDrawer
|
|
3
|
+
globs: **/*.{ts,tsx}
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Pages and drawers
|
|
8
|
+
|
|
9
|
+
There are no generic `ListPage`, `DetailPage`, or `SettingsPage` abstractions. Compose from existing containers.
|
|
10
|
+
|
|
11
|
+
**Page chrome:** `PageContent` → `SectionCard` (title / search / filters / actions + body). App shell is `Header` + `Navbar`. Bulk/dirty actions use bottom `Island`.
|
|
12
|
+
|
|
13
|
+
**Use an existing page shape:**
|
|
14
|
+
|
|
15
|
+
- Entity board: `Overview` — filters in `SectionCard`, columns, drawers, `Island`
|
|
16
|
+
- Table page: `CentralConnections` or `SamplingRules` — `SectionCard` + `Table` + search + create action + `Island`
|
|
17
|
+
- Settings: `Settings` — side menu + stacked `SectionCard`s + dirty `Island` + YAML `Drawer`
|
|
18
|
+
- Graph: `ServiceMap` only when the page is a canvas
|
|
19
|
+
|
|
20
|
+
**Detail is a drawer, not a route.** Create/edit/detail of an entity opens a drawer.
|
|
21
|
+
|
|
22
|
+
- Two-column create/pick flows: `WideDrawer` (list + form, Cancel/Save or Back/Next, dirty `CancelModal`)
|
|
23
|
+
- Tabbed detail: `Drawer` + `Segment` (see `EditSourceDrawer`)
|
|
24
|
+
- Stepped wizard: `Drawer` + step state (see `CreateCloudConnectorDrawer`)
|
|
25
|
+
- Confirm discard/delete: `CancelModal` / `DeleteModal` / `WarningModal`
|
|
26
|
+
- Do not use `Modal` as a substitute for these side-panel workflows
|
|
27
|
+
|
|
28
|
+
@src/components/styled.ts
|
|
29
|
+
@src/components/_cards/section-card/index.tsx
|
|
30
|
+
@src/components/drawer/index.tsx
|
|
31
|
+
@src/snippets/wide-drawer/index.tsx
|
|
32
|
+
@src/containers/overview/index.tsx
|
|
33
|
+
@src/containers/central-connections/index.tsx
|
|
34
|
+
@src/containers/settings/index.tsx
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Odigos visual language — theme.v2 colors, type sizes, and existing radii
|
|
3
|
+
globs: **/*.{ts,tsx}
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Visual language
|
|
8
|
+
|
|
9
|
+
Use the styled-components theme. Do not introduce new hex colors, type sizes, or one-off visual scales.
|
|
10
|
+
|
|
11
|
+
- Colors: `theme.v2.colors.{family}.{weight}` from `@/theme/palettes`.
|
|
12
|
+
- Type sizes: `theme.v2.text.size` or `Typography` + `TypographySize` (`xxxs` 10 through `xxxl` 48).
|
|
13
|
+
- Status color: `StatusType` + `getStatusColor`, never hardcoded status hex.
|
|
14
|
+
- Fonts: `theme.font_family` — Inter, Kode Mono, IBM Plex Mono.
|
|
15
|
+
- z-index: `theme.v2.zIndex` (drawer/modal `1000`, dropdown `1100`, tooltip `1200`).
|
|
16
|
+
|
|
17
|
+
There is no spacing or shadow token scale. Reuse the values already used by primitives:
|
|
18
|
+
|
|
19
|
+
- Gaps/padding: `2, 4, 8, 12, 16, 24, 32` via `PageContent`, `FlexRow`, `FlexColumn`, `Padding`
|
|
20
|
+
- Radii already in use: inputs/buttons `6px`, `SectionCard` `16px`, drawer/modal `20px`, `Badge` pill `100px`
|
|
21
|
+
|
|
22
|
+
Copy comes from `@/constants/strings` (`DISPLAY_TITLES`, `BUTTON_TEXTS`, `FORM_ALERTS`) or the domain constants next to the feature. Do not invent button labels when a shared string exists.
|
|
23
|
+
|
|
24
|
+
@src/theme/palettes/index.ts
|
|
25
|
+
@src/components/typography/index.tsx
|
|
26
|
+
@src/functions/get-status-color/index.ts
|
|
27
|
+
@src/constants/strings/index.ts
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.0.289](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.288...ui-kit-v0.0.289) (2026-08-26)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add risk breakdown to anomaly finding drawer (PLAT-1431) ([#1243](https://github.com/odigos-io/ui-kit/issues/1243)) ([5107461](https://github.com/odigos-io/ui-kit/commit/51074612ce149425d827462f63a0df70ec97a9a7))
|
|
9
|
+
* enhance no data handling in Findings and Transactions ([#1237](https://github.com/odigos-io/ui-kit/issues/1237)) ([ff4ffc2](https://github.com/odigos-io/ui-kit/commit/ff4ffc25d6e1af4d42015da8b56451280127d20f))
|
|
10
|
+
* enhance transaction management with bulk promote ([#1241](https://github.com/odigos-io/ui-kit/issues/1241)) ([6c0118f](https://github.com/odigos-io/ui-kit/commit/6c0118f2f0ab961af64dc190d24a181385210f91))
|
|
11
|
+
* implement bulk delete functionality for transactions (with bug fixes) ([#1242](https://github.com/odigos-io/ui-kit/issues/1242)) ([414bd30](https://github.com/odigos-io/ui-kit/commit/414bd30e08f582cc7c8cfc9b28e599c00fc42947))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* handle optional learning field in baselines table ([#1240](https://github.com/odigos-io/ui-kit/issues/1240)) ([e52d107](https://github.com/odigos-io/ui-kit/commit/e52d1074413383ed56735cad1fa00654033146a2))
|
|
17
|
+
|
|
18
|
+
## [0.0.288](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.287...ui-kit-v0.0.288) (2026-08-24)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
* add auto-guardrail for transaction services ([#1232](https://github.com/odigos-io/ui-kit/issues/1232)) ([c4bf356](https://github.com/odigos-io/ui-kit/commit/c4bf356ef7c553b1943f07666e5ae4d5f488ec30))
|
|
24
|
+
* Add required artifacts to show instrumentation steps on the source ([#1246](https://github.com/odigos-io/ui-kit/issues/1246)) ([9e96967](https://github.com/odigos-io/ui-kit/commit/9e9696700857ac8a9b806b8fb014ee8b2c6e4c8a))
|
|
25
|
+
* add transactions as a Guardrails facet (PLAT-1441) ([#1238](https://github.com/odigos-io/ui-kit/issues/1238)) ([718cde7](https://github.com/odigos-io/ui-kit/commit/718cde7d15bd5d60b0d4ae792bdfd3bd79aeaabc))
|
|
26
|
+
* implement Blast Radius for Findings of type `Violation` ([#1234](https://github.com/odigos-io/ui-kit/issues/1234)) ([6e71908](https://github.com/odigos-io/ui-kit/commit/6e71908826ca5631d210e577d60ceec8e47723af))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### Bug Fixes
|
|
30
|
+
|
|
31
|
+
* clean up unused insights findings lookback settings ([#1236](https://github.com/odigos-io/ui-kit/issues/1236)) ([367fe90](https://github.com/odigos-io/ui-kit/commit/367fe9095806c3156955fa1c1370cc3fc014133d))
|
|
32
|
+
|
|
3
33
|
## [0.0.287](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.286...ui-kit-v0.0.287) (2026-08-23)
|
|
4
34
|
|
|
5
35
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import{Fragment as n,useMemo as o,useContext as a,createContext as s}from"react";import{T as i,t as u,b as l,P as c}from"./ui-components-
|
|
1
|
+
import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import{Fragment as n,useMemo as o,useContext as a,createContext as s}from"react";import{T as i,t as u,b as l,P as c}from"./ui-components-Dvmqmy3G.js";import p from"styled-components";var d;(e=>{e.Default="default",e.Action="action",e.Endpoint="endpoint",e.Scope="scope",e.Duration="duration"})(d||(d={}));const f=[d.Action,d.Endpoint,d.Scope,d.Duration],h=p.span`
|
|
2
2
|
font-family: ${({theme:e,$isMono:t})=>t?e.font_family.secondary:e.font_family.primary};
|
|
3
3
|
font-size: ${({theme:e})=>e.v2.text.size.xxs}px;
|
|
4
4
|
line-height: 20px;
|