@nurix/ui-component-library 1.1.3-stage.109 → 1.1.3-stage.110

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.
Binary file
package/dist/index.d.mts CHANGED
@@ -45,9 +45,15 @@ interface NestedButtonGroupProps extends React$1.HTMLAttributes<HTMLDivElement>
45
45
  declare const NestedButtonGroup: React$1.ForwardRefExoticComponent<NestedButtonGroupProps & React$1.RefAttributes<HTMLDivElement>>;
46
46
 
47
47
  type InputBorderRadius = "none" | "soft" | "rounded" | "pill";
48
- type InputVariant = "grey" | "white";
48
+ type InputVariant = "grey" | "white" | "borderless";
49
49
  type SupportingTextType = "help" | "error" | "success";
50
50
  type InputForceState = "active" | "focussed" | "disabled";
51
+ /**
52
+ * Input size variant.
53
+ * - `md` (default): 40px height — standard forms.
54
+ * - `sm`: 32px height — compact use (filter dropdowns, toolbars).
55
+ */
56
+ type InputSize = "md" | "sm";
51
57
  interface InputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, "size"> {
52
58
  /**
53
59
  * Optional label shown above the field.
@@ -88,6 +94,13 @@ interface InputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>,
88
94
  * @default "grey"
89
95
  */
90
96
  inputVariant?: InputVariant;
97
+ /**
98
+ * Size variant of the input field.
99
+ * - `md` (default): 40px height. Standard forms.
100
+ * - `sm`: 32px height, compact vertical padding. Used in filter dropdowns / toolbars.
101
+ * @default "md"
102
+ */
103
+ inputSize?: InputSize;
91
104
  /**
92
105
  * Design-system controlled border radius.
93
106
  */
@@ -497,6 +510,12 @@ interface BadgeProps {
497
510
  * Click handler. When provided, badge renders as a button.
498
511
  */
499
512
  onClick?: (e: React$1.MouseEvent) => void;
513
+ /**
514
+ * When false, disables hover/pressed/focus affordances and cursor-pointer.
515
+ * Useful for read-only / view-only badges that should not appear clickable.
516
+ * @default true
517
+ */
518
+ interactive?: boolean;
500
519
  className?: string;
501
520
  style?: React$1.CSSProperties;
502
521
  }
@@ -792,6 +811,59 @@ interface ListProps extends React$1.HTMLAttributes<HTMLDivElement> {
792
811
  */
793
812
  declare const List: React$1.ForwardRefExoticComponent<ListProps & React$1.RefAttributes<HTMLDivElement>>;
794
813
 
814
+ type SurfaceBackground = "white" | "grey";
815
+ interface SurfaceProps extends React$1.HTMLAttributes<HTMLDivElement> {
816
+ /**
817
+ * Surface fill style.
818
+ * - white: `bg-token-white`
819
+ * - grey: `bg-token-light-grey`
820
+ * @default "white"
821
+ */
822
+ background?: SurfaceBackground;
823
+ /**
824
+ * When true the surface reserves padding so that content can sit
825
+ * directly inside without a secondary wrapper. Disable when the
826
+ * children handle their own padding (for example when composing
827
+ * full-bleed headers or images).
828
+ * @default true
829
+ */
830
+ padded?: boolean;
831
+ children?: React$1.ReactNode;
832
+ }
833
+ interface SurfaceHeaderProps extends React$1.HTMLAttributes<HTMLDivElement> {
834
+ children?: React$1.ReactNode;
835
+ }
836
+ interface SurfaceBodyProps extends React$1.HTMLAttributes<HTMLDivElement> {
837
+ children?: React$1.ReactNode;
838
+ }
839
+ interface SurfaceFooterProps extends React$1.HTMLAttributes<HTMLDivElement> {
840
+ children?: React$1.ReactNode;
841
+ }
842
+
843
+ /**
844
+ * Surface - neutral elevated surface used to group related content.
845
+ *
846
+ * Matches the Figma "Card - Surface" primitive:
847
+ * - 16px radius, 1.5px xlight border, xs drop shadow
848
+ * - white / light-grey background variants
849
+ * - overflow hidden so nested media clip to the radius
850
+ *
851
+ * Figma: 6100:42420 (surface), 6100:42423 (white bg), 6100:42428 (grey bg)
852
+ */
853
+ declare const Surface: React$1.ForwardRefExoticComponent<SurfaceProps & React$1.RefAttributes<HTMLDivElement>>;
854
+ /**
855
+ * Optional header slot — intended for a short title row.
856
+ */
857
+ declare const SurfaceHeader: React$1.ForwardRefExoticComponent<SurfaceHeaderProps & React$1.RefAttributes<HTMLDivElement>>;
858
+ /**
859
+ * Optional body slot — vertical content area with a default 8px gap.
860
+ */
861
+ declare const SurfaceBody: React$1.ForwardRefExoticComponent<SurfaceBodyProps & React$1.RefAttributes<HTMLDivElement>>;
862
+ /**
863
+ * Optional footer slot — right-aligned action row.
864
+ */
865
+ declare const SurfaceFooter: React$1.ForwardRefExoticComponent<SurfaceFooterProps & React$1.RefAttributes<HTMLDivElement>>;
866
+
795
867
  /**
796
868
  * Tooltip provider. Wrap your app (or a subtree) with this to enable tooltips.
797
869
  * Based on shadcn/ui + Radix Tooltip.
@@ -1249,30 +1321,12 @@ declare const DEFAULT_THEME: {
1249
1321
  };
1250
1322
  readonly uIColors: {
1251
1323
  readonly lightMode: {
1252
- readonly background: "#f5f5f5";
1253
- readonly foreground: "#0a0a0a";
1254
- readonly border: "#e5e5e5";
1255
- readonly destructive: "#ef4444";
1256
- readonly secondary: "#e5e5e5";
1257
- readonly mutedForeground: "#737373";
1258
- readonly muted: "#f5f5f5";
1259
1324
  readonly backgroundColor: "#0000004d";
1260
- readonly primary: "#1d4885";
1261
- readonly secondaryForeground: "#0a0a0a";
1262
- readonly accentForeground: "#171717";
1263
- readonly accent: "#f5f5f5";
1264
- readonly ring: "#0090ff";
1265
1325
  readonly chart3: "#0588f0";
1266
1326
  readonly chart2: "#0090ff";
1267
1327
  readonly chart4: "#0d74ce";
1268
1328
  readonly chart1: "#5eb1ef";
1269
1329
  readonly chart5: "#113264";
1270
- readonly card: "#ffffff";
1271
- readonly cardForeground: "#0a0a0a";
1272
- readonly popover: "#ffffff";
1273
- readonly popoverForeground: "#0a0a0a";
1274
- readonly primaryForeground: "#fafafa";
1275
- readonly input: "#eee";
1276
1330
  readonly sidebar: "#fafafa";
1277
1331
  readonly sidebarForeground: "#0a0a0a";
1278
1332
  readonly sidebarPrimary: "#171717";
@@ -1284,17 +1338,10 @@ declare const DEFAULT_THEME: {
1284
1338
  readonly semanticBackground: "#696867";
1285
1339
  readonly semanticBorder: "#898887";
1286
1340
  readonly semanticForeground: "#ffffff";
1287
- readonly disabled: "#d4d4d4";
1288
1341
  readonly primary10: "#1d488519";
1289
1342
  readonly datePickerCircle: "#3d6aa8";
1290
- readonly success: "#10b981";
1291
- readonly warning: "#fef3c7";
1292
- readonly warningForeground: "#78350f";
1293
- readonly switchTrack: "#e5e5e5";
1294
- readonly hover: "#0a0a0a1a";
1295
1343
  readonly filterInput: "#fff";
1296
1344
  readonly primarySelected: "#fff";
1297
- readonly hoverSolid: "#efefef";
1298
1345
  readonly bgWhite: "#ffffff";
1299
1346
  readonly bgLightGrey: "#fafafa";
1300
1347
  readonly bgGrey: "#f5f5f5";
@@ -1315,9 +1362,14 @@ declare const DEFAULT_THEME: {
1315
1362
  readonly borderBrand: "#1d4885";
1316
1363
  readonly borderDestructive: "#b91c1c";
1317
1364
  readonly borderInput: "#e5e5e5";
1365
+ readonly hovOpacityPrimary: "#0a0a0a0d";
1366
+ readonly hovOpacitySecondary: "#0a0a0a0d";
1318
1367
  readonly hovSolidPrimary: "#fafafa";
1319
1368
  readonly hovSolidSecondary: "#f5f5f5";
1369
+ readonly pressedOpacityPrimary: "#0a0a0a1a";
1370
+ readonly pressedOpacitySecondary: "#0a0a0a1a";
1320
1371
  readonly pressedSolid: "#e5e5e5";
1372
+ readonly inFocusOpacity: "#0a0a0a26";
1321
1373
  readonly inFocusSolid: "#f5f5f5";
1322
1374
  readonly interactionSelected: "#eff8ff";
1323
1375
  readonly iconWhite: "#fafafa";
@@ -1356,30 +1408,12 @@ declare const DEFAULT_THEME: {
1356
1408
  readonly badgeDestructiveFg: "#b91c1c";
1357
1409
  };
1358
1410
  readonly darkMode: {
1359
- readonly background: "#1e1e1e";
1360
- readonly foreground: "#fafafa";
1361
- readonly border: "#404040";
1362
- readonly destructive: "#f87171";
1363
- readonly secondary: "#262626";
1364
- readonly mutedForeground: "#a3a3a3";
1365
- readonly muted: "#262626";
1366
1411
  readonly backgroundColor: "#0000004d";
1367
- readonly primary: "#b5d5fd";
1368
- readonly secondaryForeground: "#fafafa";
1369
- readonly accentForeground: "#fafafa";
1370
- readonly accent: "#262626";
1371
- readonly ring: "#acd8fc";
1372
1412
  readonly chart3: "#0588f0";
1373
1413
  readonly chart2: "#0090ff";
1374
1414
  readonly chart4: "#0d74ce";
1375
1415
  readonly chart1: "#5eb1ef";
1376
1416
  readonly chart5: "#113264";
1377
- readonly card: "#262626";
1378
- readonly cardForeground: "#fafafa";
1379
- readonly popover: "#262626";
1380
- readonly popoverForeground: "#fafafa";
1381
- readonly primaryForeground: "#171717";
1382
- readonly input: "#171717";
1383
1417
  readonly sidebar: "#171717";
1384
1418
  readonly sidebarForeground: "#fafafa";
1385
1419
  readonly sidebarPrimary: "#0588f0";
@@ -1391,12 +1425,8 @@ declare const DEFAULT_THEME: {
1391
1425
  readonly semanticBackground: "#272625";
1392
1426
  readonly semanticBorder: "#535151";
1393
1427
  readonly semanticForeground: "#ffffff";
1394
- readonly disabled: "#404040";
1395
1428
  readonly primary10: "#e6f1ff1a";
1396
1429
  readonly datePickerCircle: "#7aa5e8";
1397
- readonly success: "#a7f3d0";
1398
- readonly warning: "#fde68a";
1399
- readonly warningForeground: "#78350f";
1400
1430
  readonly filterInput: "#171717";
1401
1431
  readonly bgWhite: "#0a0a0a";
1402
1432
  readonly bgLightGrey: "#171717";
@@ -1418,9 +1448,14 @@ declare const DEFAULT_THEME: {
1418
1448
  readonly borderBrand: "#bfdbfe";
1419
1449
  readonly borderDestructive: "#f87171";
1420
1450
  readonly borderInput: "#262626";
1451
+ readonly hovOpacityPrimary: "#ffffff0d";
1452
+ readonly hovOpacitySecondary: "#ffffff1a";
1421
1453
  readonly hovSolidPrimary: "#262626";
1422
1454
  readonly hovSolidSecondary: "#262626";
1455
+ readonly pressedOpacityPrimary: "#ffffff26";
1456
+ readonly pressedOpacitySecondary: "#ffffff26";
1423
1457
  readonly pressedSolid: "#171717";
1458
+ readonly inFocusOpacity: "#ffffff40";
1424
1459
  readonly inFocusSolid: "#262626";
1425
1460
  readonly interactionSelected: "#262626";
1426
1461
  readonly iconWhite: "#171717";
@@ -1457,10 +1492,7 @@ declare const DEFAULT_THEME: {
1457
1492
  readonly badgeNeutralFg: "#d4d4d4";
1458
1493
  readonly badgeDestructiveBg: "#7f1d1d";
1459
1494
  readonly badgeDestructiveFg: "#fecaca";
1460
- readonly switchTrack: "#ffffff";
1461
- readonly hover: "#ffffff1a";
1462
1495
  readonly primarySelected: "#1A273A";
1463
- readonly hoverSolid: "#171717";
1464
1496
  };
1465
1497
  };
1466
1498
  readonly components: {
@@ -1737,13 +1769,13 @@ declare const ICON_TOKENS: {
1737
1769
  readonly xl: "size-8";
1738
1770
  };
1739
1771
  readonly picker: {
1740
- readonly trigger: "inline-flex items-center justify-center border border-border-token-light rounded-xl p-2 cursor-pointer hover:bg-foreground/5 transition-colors";
1741
- readonly dropdown: "bg-card rounded-xl p-3 shadow-sm border border-border-token-xlight w-[320px] max-h-[400px] flex flex-col gap-2";
1742
- readonly search: "bg-bg-token-light-grey rounded-xl px-3 py-2 text-xs text-text-black placeholder:text-text-placeholder outline-none border border-border-token-xlight focus:border-border-token-brand w-full";
1772
+ readonly trigger: "inline-flex items-center justify-center border border-token-light rounded-xl p-2 cursor-pointer hover:bg-token-dark/5 transition-colors";
1773
+ readonly dropdown: "bg-token-white rounded-xl p-3 shadow-sm border border-token-xlight w-[320px] max-h-[400px] flex flex-col gap-2";
1774
+ readonly search: "bg-token-light-grey rounded-xl px-3 py-2 text-xs text-fg-black placeholder:text-fg-placeholder outline-none border border-token-xlight focus:border-token-brand w-full";
1743
1775
  readonly grid: "grid grid-cols-8 gap-1 overflow-y-auto max-h-[280px] p-1";
1744
1776
  readonly gridItem: "flex items-center justify-center p-2 rounded-xl cursor-pointer hover:bg-interaction-hov-solid-primary transition-colors";
1745
- readonly gridItemSelected: "bg-bg-token-brand-secondary";
1746
- readonly emptyText: "text-xs text-text-grey-secondary text-center py-4";
1777
+ readonly gridItemSelected: "bg-token-brand-secondary";
1778
+ readonly emptyText: "text-xs text-fg-grey-secondary text-center py-4";
1747
1779
  };
1748
1780
  };
1749
1781
  type IconColor = keyof typeof ICON_TOKENS.color;
@@ -2042,20 +2074,34 @@ declare namespace DataTable {
2042
2074
  interface FilterItem<T = string> {
2043
2075
  value: T;
2044
2076
  label: string;
2045
- /** Optional icon for this item (per-item icon support - feature 5) */
2077
+ /** Optional secondary line shown under the label (two-line option support) */
2078
+ subtext?: string;
2079
+ /** Optional icon for this item (per-item icon support) */
2046
2080
  icon?: LucideIcon | React$1.ReactNode;
2047
- /** Show loading state for this item (per-item loading - feature 6) */
2081
+ /** Show loading state for this item (per-item loading) */
2048
2082
  loading?: boolean;
2049
- /** Optional custom display node to render instead of plain label (e.g. ratings with star + color pill) */
2083
+ /** Optional custom display node to render instead of plain label */
2050
2084
  labelNode?: React$1.ReactNode;
2051
2085
  }
2052
2086
  /**
2053
- * Filter item with section grouping (feature 4)
2087
+ * Filter item with section grouping
2054
2088
  */
2055
2089
  interface FilterItemWithSection<T = string> {
2056
2090
  sectionLabel: string;
2057
2091
  items: FilterItem<T>[];
2058
2092
  }
2093
+ /**
2094
+ * Filter types.
2095
+ * - "list" : multi-select list (with optional search, sections, drag)
2096
+ * - "text" : textarea
2097
+ * - "text_with_operands" : operand dropdown + textarea
2098
+ * - "numeric" : single numeric input
2099
+ * - "numeric_with_operands" : operand dropdown + numeric input (+ optional range mode for "is between")
2100
+ * - "in_between" : two numeric inputs (min / max) — no operand dropdown
2101
+ * - "duration" : numeric input + unit dropdown (sec / min / hours)
2102
+ * - "date" : date range picker with optional presets
2103
+ */
2104
+ type FilterSelectType = "list" | "text" | "text_with_operands" | "numeric" | "numeric_with_operands" | "in_between" | "duration" | "date";
2059
2105
  /**
2060
2106
  * Props for FilterSelect component
2061
2107
  */
@@ -2066,7 +2112,7 @@ interface FilterSelectProps<T = string> extends Omit<React$1.HTMLAttributes<HTML
2066
2112
  icon?: LucideIcon;
2067
2113
  /** Array of selected item values */
2068
2114
  selectedItems?: T[];
2069
- /** Available items for selection (flat or sectioned) - feature 4: section grouping */
2115
+ /** Available items for selection (flat or sectioned) */
2070
2116
  items: (FilterItem<T> | FilterItemWithSection<T>)[];
2071
2117
  /** Enable drag-and-drop reordering (default: false) */
2072
2118
  draggable?: boolean;
@@ -2076,7 +2122,7 @@ interface FilterSelectProps<T = string> extends Omit<React$1.HTMLAttributes<HTML
2076
2122
  onSelectionChange?: (values: T[]) => void;
2077
2123
  /** Callback when order changes (draggable mode) */
2078
2124
  onOrderChange?: (values: T[]) => void;
2079
- /** Max width for selected items display (default: "35ch") */
2125
+ /** Max width for selected items display */
2080
2126
  selectedItemsMaxWidth?: string;
2081
2127
  /** Override classes for selected items display area */
2082
2128
  selectedItemsClassName?: string;
@@ -2086,66 +2132,84 @@ interface FilterSelectProps<T = string> extends Omit<React$1.HTMLAttributes<HTML
2086
2132
  open?: boolean;
2087
2133
  /** Callback when open state changes */
2088
2134
  onOpenChange?: (open: boolean) => void;
2089
- /** Max height for dropdown content (default: "20vh") */
2135
+ /** Max height for dropdown content */
2090
2136
  dropdownMaxHeight?: string;
2091
2137
  /** Show loading spinner in dropdown */
2092
2138
  loading?: boolean;
2093
2139
  onRemoveAll?: () => void;
2094
- /** Type of filter select: "list" (default), "text", "text_with_operands", "numeric", "numeric_with_operands", or "date" */
2095
- type?: "list" | "text" | "text_with_operands" | "numeric" | "numeric_with_operands" | "date";
2096
- /** Controlled text value for textarea/input (for "text", "text_with_operands", and "numeric" types) */
2140
+ /** Type of filter select */
2141
+ type?: FilterSelectType;
2142
+ /** Controlled text value */
2097
2143
  text?: string;
2098
- /** Callback when text changes (for "text", "text_with_operands", and "numeric" types) */
2144
+ /** Callback when text changes */
2099
2145
  onTextChange?: (text: string) => void;
2100
- /** Selected operand value (for "text_with_operands" type) - feature 2: operands as prop */
2146
+ /** Selected operand value */
2101
2147
  operand?: string;
2102
- /** Callback when operand changes (for "text_with_operands" type) */
2148
+ /** Callback when operand changes */
2103
2149
  onOperandChange?: (operand: string) => void;
2104
- /** Available operands with label and value - feature 2: operands support for conversation logs */
2150
+ /** Available operands with label and value */
2105
2151
  operands?: {
2106
2152
  value: string;
2107
2153
  label: string;
2108
2154
  }[];
2109
- /** Placeholder text for textarea/input (for "text", "text_with_operands", and "numeric" types) */
2155
+ /** Placeholder text for textarea/input */
2110
2156
  textPlaceholder?: string;
2111
- /** Placeholder for operand select (for "text_with_operands"/"numeric_with_operands" type, default: "") */
2157
+ /** Placeholder for operand select (default: "") */
2112
2158
  operandPlaceholder?: string;
2113
2159
  /** Unit label suffix shown inside numeric input (e.g. "sec", "min") */
2114
2160
  unitLabel?: string;
2115
2161
  /** Enable range mode for "numeric_with_operands" - shows min/max inputs */
2116
2162
  isRangeMode?: boolean;
2117
- /** Range min value (for numeric_with_operands in range mode) */
2163
+ /** Range min value */
2118
2164
  rangeMin?: string;
2119
- /** Range max value (for numeric_with_operands in range mode) */
2165
+ /** Range max value */
2120
2166
  rangeMax?: string;
2121
2167
  /** Callback when range min changes */
2122
2168
  onRangeMinChange?: (value: string) => void;
2123
2169
  /** Callback when range max changes */
2124
2170
  onRangeMaxChange?: (value: string) => void;
2125
- /** Feature 1: Search functionality - show search input to filter list items */
2171
+ /**
2172
+ * Duration filter options — when type="duration" this defines the unit dropdown choices.
2173
+ * Defaults to [{ value: "sec", label: "sec" }, { value: "min", label: "min" }, { value: "hours", label: "hours" }].
2174
+ */
2175
+ durationUnits?: {
2176
+ value: string;
2177
+ label: string;
2178
+ }[];
2179
+ /** Currently selected duration unit value */
2180
+ durationUnit?: string;
2181
+ /** Callback when duration unit changes */
2182
+ onDurationUnitChange?: (unit: string) => void;
2183
+ /** Show search input to filter list items */
2126
2184
  showSearch?: boolean;
2127
- /** Feature 1: Search placeholder text (default: "Search...") */
2185
+ /** Search placeholder text (default: "Search...") */
2128
2186
  searchPlaceholder?: string;
2129
- /** Date range value (for "date" type): { start, end } */
2187
+ /** Date range value (for "date" type) */
2130
2188
  date?: {
2131
2189
  start?: Date;
2132
2190
  end?: Date;
2133
2191
  };
2134
- /** Callback when date range changes (for "date" type) */
2192
+ /** Callback when date range changes */
2135
2193
  onDateChange?: (date: {
2136
2194
  start?: Date;
2137
2195
  end?: Date;
2138
2196
  }) => void;
2139
- /** Date presets to show (default: true = built-in presets). Set false to hide, or pass custom array */
2197
+ /** Date presets to show (default: true) */
2140
2198
  datePresets?: boolean | DatePreset[];
2141
2199
  /** Show time picker in date filter (default: true) */
2142
2200
  showTime?: boolean;
2143
- /** Feature 7: Empty state label when no items available */
2201
+ /** Empty state label when no items available */
2144
2202
  emptyStateLabel?: string;
2145
2203
  /** Additional className for the trigger button */
2146
2204
  triggerClassName?: string;
2147
2205
  /** Additional className for the dropdown content */
2148
2206
  dropdownClassName?: string;
2207
+ /**
2208
+ * Override className for the `label` span inside the trigger. Useful when embedding
2209
+ * FilterSelect as the right pill of `<CompoundFilterSelect>`, where the Figma spec
2210
+ * paints the label in `text-fg-brand` (Subtext/xs) — see Figma 5427:32334.
2211
+ */
2212
+ labelClassName?: string;
2149
2213
  }
2150
2214
  /** Date preset: label and function to compute the range */
2151
2215
  interface DatePreset {
@@ -2164,17 +2228,19 @@ interface FilterListItemProps<T = string> {
2164
2228
  value: T;
2165
2229
  /** Display text */
2166
2230
  label: string;
2231
+ /** Optional subtext displayed below the label (two-line option) */
2232
+ subtext?: string;
2167
2233
  /** Selection state */
2168
2234
  selected?: boolean;
2169
2235
  /** Show drag handle */
2170
2236
  draggable?: boolean;
2171
2237
  /** Selection handler */
2172
2238
  onSelect?: (value: T) => void;
2173
- /** Feature 5: Optional icon for this item */
2239
+ /** Optional icon for this item */
2174
2240
  icon?: React$1.ComponentType<any> | React$1.ReactNode;
2175
- /** Feature 6: Show loading spinner on this item */
2241
+ /** Show loading spinner on this item */
2176
2242
  loading?: boolean;
2177
- /** Optional custom display node replacing the plain label (e.g. rating pill) */
2243
+ /** Optional custom display node replacing the plain label */
2178
2244
  labelNode?: React$1.ReactNode;
2179
2245
  /** Hover state (for stories) */
2180
2246
  hover?: boolean;
@@ -2184,6 +2250,18 @@ interface FilterListItemProps<T = string> {
2184
2250
 
2185
2251
  declare const FilterSelect: React$1.ForwardRefExoticComponent<FilterSelectProps<string> & React$1.RefAttributes<HTMLDivElement>>;
2186
2252
 
2253
+ /**
2254
+ * FilterListItem — single row in a FilterSelect dropdown list.
2255
+ *
2256
+ * Figma spec (4085:5872, 4085:5885):
2257
+ * [drag handle?] [leading icon?] [label / optional subtext] [trailing tick when selected]
2258
+ *
2259
+ * Key fix: only the SELECTED option renders a tick — NOT every option.
2260
+ * We do not render a Checkbox; the design uses trailing check + bg-brand-secondary for selection.
2261
+ *
2262
+ * Layout-shift: the trailing tick slot is always reserved (same width) so selection does not
2263
+ * jitter item width. Hover / selected use background swaps only — no padding or border changes.
2264
+ */
2187
2265
  declare const FilterListItem: React$1.ForwardRefExoticComponent<FilterListItemProps<string> & {
2188
2266
  onDragStart?: (e: React$1.DragEvent) => void;
2189
2267
  onDragOver?: (e: React$1.DragEvent) => void;
@@ -2393,6 +2471,16 @@ declare const MONACO_OPTIONS_DIALOG: {
2393
2471
  interface KeyValuePair {
2394
2472
  key: string;
2395
2473
  value: string;
2474
+ /**
2475
+ * Optional per-row error for the key field. When set, the key Input is
2476
+ * rendered with `invalid` + this message as supporting-text.
2477
+ */
2478
+ keyError?: string;
2479
+ /**
2480
+ * Optional per-row error for the value field. When set, the value Input is
2481
+ * rendered with `invalid` + this message as supporting-text.
2482
+ */
2483
+ valueError?: string;
2396
2484
  }
2397
2485
  interface KeyValueEditorProps {
2398
2486
  /**
@@ -2425,6 +2513,12 @@ interface KeyValueEditorProps {
2425
2513
  * @default true
2426
2514
  */
2427
2515
  allowDeleteRow?: boolean;
2516
+ /**
2517
+ * Optional leading icon rendered inside the value field (e.g. a type
2518
+ * indicator like `<Brackets />`). Defaults to the git-compare glyph that
2519
+ * matches the Figma reference.
2520
+ */
2521
+ valueLeadingIcon?: React$1.ReactNode;
2428
2522
  className?: string;
2429
2523
  style?: React$1.CSSProperties;
2430
2524
  }
@@ -2432,10 +2526,84 @@ interface KeyValueEditorProps {
2432
2526
  /**
2433
2527
  * KeyValueEditor - Table-style key-value pair editor.
2434
2528
  * Renders header (Key, Value) and editable rows with delete on hover.
2529
+ *
2530
+ * Each row's key and value fields use the shared <Input> component
2531
+ * (inputSize="sm"), so focus/hover/pressed/invalid states and typography
2532
+ * are inherited from the design system — no ad-hoc input styling lives
2533
+ * here.
2534
+ *
2435
2535
  * Figma reference: 5905:39527
2436
2536
  */
2437
2537
  declare const KeyValueEditor: React$1.ForwardRefExoticComponent<KeyValueEditorProps & React$1.RefAttributes<HTMLDivElement>>;
2438
2538
 
2539
+ interface AudioPlayerProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "onSeek" | "onRateChange"> {
2540
+ /** Whether audio is currently playing. Controls the play/pause icon. */
2541
+ isPlaying: boolean;
2542
+ /** Current playback position, in seconds. */
2543
+ currentTime: number;
2544
+ /** Total duration, in seconds. */
2545
+ duration: number;
2546
+ /**
2547
+ * Normalized bar heights for the waveform, each between 0 and 1.
2548
+ * If omitted, a flat baseline line is rendered.
2549
+ */
2550
+ waveform?: number[];
2551
+ /** Current playback speed (e.g. 1, 1.5, 2). Shown in a trailing pill. */
2552
+ playbackRate?: number;
2553
+ /** Available playback speeds to cycle through on pill click. */
2554
+ playbackRateOptions?: number[];
2555
+ /** Called when the play/pause button is clicked. */
2556
+ onPlayPause?: () => void;
2557
+ /** Called when the user clicks a position on the waveform. */
2558
+ onSeek?: (seconds: number) => void;
2559
+ /** Called when the user clicks the speed pill. */
2560
+ onRateChange?: (rate: number) => void;
2561
+ /** Custom formatter for times. Defaults to `m:ss`. */
2562
+ formatTime?: (seconds: number) => string;
2563
+ }
2564
+
2565
+ /**
2566
+ * AudioPlayer — presentational waveform audio player.
2567
+ *
2568
+ * Pure / controlled: all state (playing, time, rate) is driven by props.
2569
+ * Clicks on the waveform emit `onSeek(seconds)`; clicking the speed pill
2570
+ * cycles through `playbackRateOptions` (default `[1, 1.5, 2]`).
2571
+ *
2572
+ * Figma: 3576:2351
2573
+ */
2574
+ declare const AudioPlayer: React$1.ForwardRefExoticComponent<AudioPlayerProps & React$1.RefAttributes<HTMLDivElement>>;
2575
+
2576
+ interface ChatBubbleBaseProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
2577
+ /** Message body (string or rich node). */
2578
+ message: React$1.ReactNode;
2579
+ /** Timestamp text (e.g. "04:47 PM"). Revealed on hover by default. */
2580
+ timestamp?: string;
2581
+ /** When true, timestamp is always visible. */
2582
+ alwaysShowTimestamp?: boolean;
2583
+ /** Override for the 16px avatar slot. */
2584
+ avatar?: React$1.ReactNode;
2585
+ }
2586
+ interface ChatBubbleAgentProps extends ChatBubbleBaseProps {
2587
+ /** Shown below the bubble (e.g. a "Tool Call" tag). */
2588
+ trailing?: React$1.ReactNode;
2589
+ /** In-Focus state — draws the brand ring around the bubble. */
2590
+ focused?: boolean;
2591
+ }
2592
+ interface ChatBubbleUserProps extends ChatBubbleBaseProps {
2593
+ }
2594
+
2595
+ /**
2596
+ * ChatBubbleAgent — right-aligned agent message with an avatar dot.
2597
+ * Figma: 3575:10095 / 3575:10154 (hover) / 5494:33659 (in-focus).
2598
+ */
2599
+ declare const ChatBubbleAgent: React$1.ForwardRefExoticComponent<ChatBubbleAgentProps & React$1.RefAttributes<HTMLDivElement>>;
2600
+ /**
2601
+ * ChatBubbleUser — left-aligned user message with a grey avatar icon.
2602
+ * No bubble background; just inline icon + grey text.
2603
+ * Figma: 3575:10815 / 3575:10829 (hover).
2604
+ */
2605
+ declare const ChatBubbleUser: React$1.ForwardRefExoticComponent<ChatBubbleUserProps & React$1.RefAttributes<HTMLDivElement>>;
2606
+
2439
2607
  type PopoverSide = "top" | "right" | "bottom" | "left";
2440
2608
  type PopoverAlign = "start" | "center" | "end";
2441
2609
  type PopoverShadow = "none" | "xs" | "sm" | "md" | "lg";
@@ -2533,4 +2701,4 @@ interface PopoverProps {
2533
2701
  */
2534
2702
  declare const Popover: React$1.ForwardRefExoticComponent<PopoverProps & React$1.RefAttributes<HTMLDivElement>>;
2535
2703
 
2536
- export { Accordion, AccordionContent, AccordionContentPlaceholder, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, type AccordionType, type AccordionValue, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarShape, type AvatarSize, type BackButtonPosition, Badge, type BadgeProps, type BadgeVariant, Button, type ButtonBorderRadius, ButtonList, type ButtonListItem, type ButtonListProps, type ButtonProps, type ButtonSize, type ButtonVariant, type CellContent, type CellTextContent, Checkbox, type CheckboxProps, type ColumnDef, ColumnWidth, CompoundFilterSelect, type CompoundFilterSelectProps, type CompoundFilterToggleOption, DEFAULT_THEME, DataTable, type DataTableProps, type DatePreset, Dialog, DialogBody, type DialogBodyProps, DialogFooter, type DialogFooterProps, DialogHeader, DialogHeaderNavigation, type DialogHeaderNavigationProps, type DialogHeaderNavigationVariant, type DialogHeaderProps, DialogIcon, type DialogIconProps, type DialogProps, type DialogSize, type DialogType, EmptyState, type EmptyStateIllustrationPosition, type EmptyStateIllustrationSize, type EmptyStateProps, FileInput, type FileInputProps, type FilterItem, type FilterItemWithSection, FilterListItem, type FilterListItemProps, FilterSelect, type FilterSelectProps, type IconColor, IconPicker, type IconPickerProps, type IconSize, IconWrapper, type IconWrapperProps, Input, type InputBorderRadius, type InputForceState, InputGroup, type InputGroupBorderRadius, type InputGroupForceState, type InputGroupProps, type InputProps, type InputVariant, JSON_EDITOR_LANGUAGE_OPTIONS, JsonEditor, type JsonEditorLanguage, type JsonEditorProps, KeyValueEditor, type KeyValueEditorProps, type KeyValuePair, LegoLandWrapper, type LegoLandWrapperProps, List, type ListBorderRadius, type ListNavItemProps, ListNavigation, type ListNavigationProps, type ListProps, type ListType, type ListVariant, MONACO_OPTIONS, MONACO_OPTIONS_DIALOG, NestedButtonGroup, type NestedButtonGroupProps, NumberBadge, type NumberBadgeProps, type NumberBadgeVariant, NurixThemeProvider, Pagination, type PaginationProps, PlaySelect, type PlaySelectAudioItem, type PlaySelectProps, PlaybackControl, type PlaybackControlProps, type PlaybackState, Popover, type PopoverAlign, type PopoverProps, type PopoverShadow, type PopoverSide, ProgressBar, type ProgressBarProps, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, Select, SelectContent, type SelectContentItem, SelectFormLabel, SelectGroup, type SelectGroupProps, SelectItem, SelectLabel, type SelectLabelProps, type SelectMenuItemProps, type SelectProps, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, ShadowDOMWrapper, type ShowToastOptions, type SortDirection, type SortState, Spinner, type SpinnerProps, type SpinnerSize, type StepItem, type StepState, Stepper, StepperBar, type StepperBarProps, type StepperProps, type SupportingTextType, Switch, type SwitchProps, type SwitchSize, type TabVariant, type TableAction, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, TagBadge, type TagBadgeProps, type TagOption, Textarea, type TextareaBorderRadius, type TextareaForceState, type TextareaProps, ThemeProvider, Toast, type ToastProps, type ToastVariant, Toaster, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, Typography, type TypographyProps, type TypographySize, type TypographyTone, type TypographyVariant, type TypographyWeight, type UsePlaySelectProps, type UseSelectProps, enhanceJsonError, showToast, useJsonEditor, usePlaySelect, useSelect, useTheme };
2704
+ export { Accordion, AccordionContent, AccordionContentPlaceholder, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, type AccordionType, type AccordionValue, AudioPlayer, type AudioPlayerProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarShape, type AvatarSize, type BackButtonPosition, Badge, type BadgeProps, type BadgeVariant, Button, type ButtonBorderRadius, ButtonList, type ButtonListItem, type ButtonListProps, type ButtonProps, type ButtonSize, type ButtonVariant, type CellContent, type CellTextContent, ChatBubbleAgent, type ChatBubbleAgentProps, ChatBubbleUser, type ChatBubbleUserProps, Checkbox, type CheckboxProps, type ColumnDef, ColumnWidth, CompoundFilterSelect, type CompoundFilterSelectProps, type CompoundFilterToggleOption, DEFAULT_THEME, DataTable, type DataTableProps, type DatePreset, Dialog, DialogBody, type DialogBodyProps, DialogFooter, type DialogFooterProps, DialogHeader, DialogHeaderNavigation, type DialogHeaderNavigationProps, type DialogHeaderNavigationVariant, type DialogHeaderProps, DialogIcon, type DialogIconProps, type DialogProps, type DialogSize, type DialogType, EmptyState, type EmptyStateIllustrationPosition, type EmptyStateIllustrationSize, type EmptyStateProps, FileInput, type FileInputProps, type FilterItem, type FilterItemWithSection, FilterListItem, type FilterListItemProps, FilterSelect, type FilterSelectProps, type IconColor, IconPicker, type IconPickerProps, type IconSize, IconWrapper, type IconWrapperProps, Input, type InputBorderRadius, type InputForceState, InputGroup, type InputGroupBorderRadius, type InputGroupForceState, type InputGroupProps, type InputProps, type InputVariant, JSON_EDITOR_LANGUAGE_OPTIONS, JsonEditor, type JsonEditorLanguage, type JsonEditorProps, KeyValueEditor, type KeyValueEditorProps, type KeyValuePair, LegoLandWrapper, type LegoLandWrapperProps, List, type ListBorderRadius, type ListNavItemProps, ListNavigation, type ListNavigationProps, type ListProps, type ListType, type ListVariant, MONACO_OPTIONS, MONACO_OPTIONS_DIALOG, NestedButtonGroup, type NestedButtonGroupProps, NumberBadge, type NumberBadgeProps, type NumberBadgeVariant, NurixThemeProvider, Pagination, type PaginationProps, PlaySelect, type PlaySelectAudioItem, type PlaySelectProps, PlaybackControl, type PlaybackControlProps, type PlaybackState, Popover, type PopoverAlign, type PopoverProps, type PopoverShadow, type PopoverSide, ProgressBar, type ProgressBarProps, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, Select, SelectContent, type SelectContentItem, SelectFormLabel, SelectGroup, type SelectGroupProps, SelectItem, SelectLabel, type SelectLabelProps, type SelectMenuItemProps, type SelectProps, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, ShadowDOMWrapper, type ShowToastOptions, type SortDirection, type SortState, Spinner, type SpinnerProps, type SpinnerSize, type StepItem, type StepState, Stepper, StepperBar, type StepperBarProps, type StepperProps, type SupportingTextType, Surface, type SurfaceBackground, SurfaceBody, type SurfaceBodyProps, SurfaceFooter, type SurfaceFooterProps, SurfaceHeader, type SurfaceHeaderProps, type SurfaceProps, Switch, type SwitchProps, type SwitchSize, type TabVariant, type TableAction, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, TagBadge, type TagBadgeProps, type TagOption, Textarea, type TextareaBorderRadius, type TextareaForceState, type TextareaProps, ThemeProvider, Toast, type ToastProps, type ToastVariant, Toaster, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, Typography, type TypographyProps, type TypographySize, type TypographyTone, type TypographyVariant, type TypographyWeight, type UsePlaySelectProps, type UseSelectProps, enhanceJsonError, showToast, useJsonEditor, usePlaySelect, useSelect, useTheme };