@reopt-ai/opt-ui 1.11.0 → 1.12.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.
Files changed (73) hide show
  1. package/COMPONENT_CATALOG.md +394 -201
  2. package/README.md +43 -5
  3. package/dist/core/index.cjs +2 -2
  4. package/dist/core/index.d.cts +2 -2
  5. package/dist/core/index.d.ts +2 -2
  6. package/dist/core/index.js +2 -2
  7. package/dist/docs/02-components/01-core.md +150 -84
  8. package/dist/docs/02-components/02-visuals.md +1 -1
  9. package/dist/docs/02-components/03-shells.md +258 -117
  10. package/dist/docs/02-components/04-surfaces.md +1 -1
  11. package/dist/docs/02-components/index.md +5 -5
  12. package/dist/docs/03-recipes/02-dashboards.md +126 -10
  13. package/dist/{field-sidebar-DAuN4jPV.cjs → field-sidebar-BYgEmdy0.cjs} +1539 -1536
  14. package/dist/{field-sidebar-BXl5RJ3q.js → field-sidebar-BuO37l4c.js} +1540 -1539
  15. package/dist/{field-sidebar-B5SQC35J.d.cts → field-sidebar-CrYlRZew.d.ts} +164 -154
  16. package/dist/{field-sidebar-CBeWE8xX.d.ts → field-sidebar-uXmoyvd7.d.cts} +164 -154
  17. package/dist/id-registry.cjs +78 -6
  18. package/dist/id-registry.d.cts +1 -2
  19. package/dist/id-registry.d.ts +1 -2
  20. package/dist/id-registry.js +78 -8
  21. package/dist/id-registry.json +168 -19
  22. package/dist/index.cjs +1127 -224
  23. package/dist/index.d.cts +567 -58
  24. package/dist/index.d.ts +567 -58
  25. package/dist/index.js +1118 -227
  26. package/dist/{key-pad-menu-BxTy_u0Q.d.cts → key-pad-menu-CwcY_Vps.d.cts} +2 -3
  27. package/dist/{key-pad-menu-wXkWn1I1.js → key-pad-menu-Di2aRGbM.js} +4 -6
  28. package/dist/{key-pad-menu-Cg6rZBie.cjs → key-pad-menu-SItoHPLu.cjs} +1 -1
  29. package/dist/{key-pad-menu-u5GTJl9B.d.ts → key-pad-menu-WBJShCJn.d.ts} +3 -4
  30. package/dist/meta.cjs +678 -19
  31. package/dist/meta.d.cts +12 -36
  32. package/dist/meta.d.ts +12 -36
  33. package/dist/meta.js +678 -21
  34. package/dist/query.d.cts +1 -2
  35. package/dist/query.d.ts +1 -2
  36. package/dist/query.js +0 -2
  37. package/dist/shells/index.cjs +1 -1
  38. package/dist/shells/index.d.cts +1 -1
  39. package/dist/shells/index.d.ts +1 -1
  40. package/dist/shells/index.js +1 -1
  41. package/dist/{text-truncate-DW78lg4S.d.cts → text-truncate-CQyfUZvq.d.cts} +31 -3
  42. package/dist/{text-truncate-DW78lg4S.d.ts → text-truncate-CQyfUZvq.d.ts} +31 -3
  43. package/dist/{text-truncate-C17HHCR-.js → text-truncate-DSuZECy0.js} +43 -10
  44. package/dist/{text-truncate-BZdL1k5Z.cjs → text-truncate-I1XLWmRa.cjs} +48 -7
  45. package/dist/theme/server.d.cts +1 -2
  46. package/dist/theme/server.d.ts +1 -2
  47. package/dist/theme/server.js +0 -2
  48. package/dist/visuals/index.js +0 -1
  49. package/package.json +4 -3
  50. package/dist/field-sidebar-B5SQC35J.d.cts.map +0 -1
  51. package/dist/field-sidebar-BXl5RJ3q.js.map +0 -1
  52. package/dist/field-sidebar-CBeWE8xX.d.ts.map +0 -1
  53. package/dist/id-registry.d.cts.map +0 -1
  54. package/dist/id-registry.d.ts.map +0 -1
  55. package/dist/id-registry.js.map +0 -1
  56. package/dist/index.d.cts.map +0 -1
  57. package/dist/index.d.ts.map +0 -1
  58. package/dist/index.js.map +0 -1
  59. package/dist/key-pad-menu-BxTy_u0Q.d.cts.map +0 -1
  60. package/dist/key-pad-menu-u5GTJl9B.d.ts.map +0 -1
  61. package/dist/key-pad-menu-wXkWn1I1.js.map +0 -1
  62. package/dist/meta.d.cts.map +0 -1
  63. package/dist/meta.d.ts.map +0 -1
  64. package/dist/meta.js.map +0 -1
  65. package/dist/query.d.cts.map +0 -1
  66. package/dist/query.d.ts.map +0 -1
  67. package/dist/query.js.map +0 -1
  68. package/dist/text-truncate-C17HHCR-.js.map +0 -1
  69. package/dist/text-truncate-DW78lg4S.d.cts.map +0 -1
  70. package/dist/text-truncate-DW78lg4S.d.ts.map +0 -1
  71. package/dist/theme/server.d.cts.map +0 -1
  72. package/dist/theme/server.d.ts.map +0 -1
  73. package/dist/theme/server.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
 
2
- import { A as FormFieldDef, D as FaqItem, E as FailureItem, F as ProjectDef, G as ToolbarButtonDef, L as SelectOption, P as NavItemDef, R as StatCard, S as EnvGroupDef, a as FieldDataType, b as DeploymentStep, j as MenuDef, r as TruncationSide, u as BranchDef, x as DomainDef, y as CommandDef, z as TabDef } from "./text-truncate-DW78lg4S.cjs";
2
+ import { B as StatCard, C as DomainDef, I as NavItemDef, L as ProjectDef, M as FormFieldDef, N as MenuDef, O as FailureItem, S as DeploymentStep, V as TabDef, a as FieldDataType, f as BranchDef, k as FaqItem, q as ToolbarButtonDef, r as TruncationSide, w as EnvGroupDef, x as CommandDef, z as SelectOption } from "./text-truncate-CQyfUZvq.js";
3
3
  import * as React from "react";
4
4
  import { ReactNode, Ref } from "react";
5
5
  import { TimeGranularity, TimeRange, TimeRange as TimeRange$1, TimeSeriesAnnotation, TimeSeriesChartProps, TimeSeriesDef, TimeSeriesPoint } from "@reopt-ai/opt-charts";
@@ -288,7 +288,18 @@ interface DataTableProps<T> {
288
288
  data: T[];
289
289
  columns: ColumnDef<T>[];
290
290
  keyExtractor: (row: T) => string;
291
+ /**
292
+ * A heading above the table. Omitted by default — most tables sit under a
293
+ * page heading that already names them, and a second one in English was
294
+ * showing up on screens that had never asked for a title.
295
+ */
291
296
  title?: string;
297
+ /**
298
+ * The grid's accessible name, for a table that shows no heading. `title`
299
+ * wins when both are given, so a visible heading is never contradicted by a
300
+ * different spoken one.
301
+ */
302
+ ariaLabel?: string;
292
303
  onRowClick?: (row: T) => void;
293
304
  emptyMessage?: string;
294
305
  /** Highlight a single row by its key */
@@ -313,7 +324,7 @@ interface DataTableProps<T> {
313
324
  className?: string;
314
325
  }
315
326
  /** Renders the data table component. */
316
- declare function DataTable<T>({ data, columns, keyExtractor, title, onRowClick, emptyMessage, activeRowId, sortable, selectable, selectedKeys, onSelectionChange, expandable, renderExpanded, pageSize, stickyHeader, resizableColumns, onSort: onSortExternal, className }: DataTableProps<T>): import("react").JSX.Element;
327
+ declare function DataTable<T>({ data, columns, keyExtractor, title, ariaLabel, onRowClick, emptyMessage, activeRowId, sortable, selectable, selectedKeys, onSelectionChange, expandable, renderExpanded, pageSize, stickyHeader, resizableColumns, onSort: onSortExternal, className }: DataTableProps<T>): import("react").JSX.Element;
317
328
  //#endregion
318
329
  //#region src/shells/notification-toast.d.ts
319
330
  /** Defines the toast action shape. */
@@ -702,6 +713,156 @@ declare namespace Flyout {
702
713
  var displayName: string;
703
714
  }
704
715
  //#endregion
716
+ //#region src/lib/query/query-ast.d.ts
717
+ /**
718
+ * A search query, as a value.
719
+ *
720
+ * Free-text search and a row of filter pickers answer different halves of the
721
+ * same question, and neither can express the other: a picker cannot say "not
722
+ * this", and a text box cannot say "this field, exactly". A parsed query is one
723
+ * thing that does both, and — because it is a value rather than a widget's
724
+ * internal state — it survives a URL, a saved view, and the trip to a server
725
+ * that has to turn it into a database filter.
726
+ *
727
+ * The grammar follows the one analytics tools have converged on (Elastic's
728
+ * `EuiSearchBar`, Kibana, GitHub's issue search), minus the parts that only
729
+ * make sense against a Lucene index:
730
+ *
731
+ * error a term anywhere in the row
732
+ * "connection reset" a phrase, kept together
733
+ * -health a term that must not appear
734
+ * path:/checkout a field equal to a value
735
+ * path:(/a or /b) a field equal to any of several values
736
+ * -status:200 a field that must not equal a value
737
+ * status>=500 a comparison
738
+ * path:*checkout* the field contains this somewhere
739
+ * utm_source:* the field is present at all
740
+ *
741
+ * Clauses combine with AND; `or` only groups values inside one field. That is
742
+ * a deliberate ceiling: arbitrary boolean nesting reads worse than it queries,
743
+ * and every backend this targets can express the restricted form directly.
744
+ */
745
+ /** How a field clause compares. */
746
+ type QueryOperator = "eq" | "contains" | "gt" | "gte" | "lt" | "lte" | "exists";
747
+ /** A bare or quoted word matched against the whole row. */
748
+ interface QueryTermClause {
749
+ type: "term";
750
+ value: string;
751
+ negated: boolean;
752
+ }
753
+ /** A constraint on one named field. Several values read as "any of". */
754
+ interface QueryFieldClause {
755
+ type: "field";
756
+ field: string;
757
+ operator: QueryOperator;
758
+ values: string[];
759
+ negated: boolean;
760
+ }
761
+ type QueryClause = QueryTermClause | QueryFieldClause;
762
+ /** A parsed query: clauses combined with AND. */
763
+ interface Query {
764
+ clauses: QueryClause[];
765
+ }
766
+ declare const EMPTY_QUERY: Query;
767
+ /** Whether a query constrains anything at all. */
768
+ declare function isEmptyQuery(query: Query | null | undefined): boolean;
769
+ /** Add a clause unless an identical one is already there. */
770
+ declare function addClause(query: Query, clause: QueryClause): Query;
771
+ /**
772
+ * Constrain a field to a value — what a cell's "filter for this" action does.
773
+ *
774
+ * Applying the opposite of a constraint already present replaces it rather than
775
+ * adding it: `status:200` then "filter out 200" should read as one changed
776
+ * mind, not as a query that can never match.
777
+ */
778
+ declare function withFieldValue(query: Query, field: string, value: string, options?: {
779
+ negated?: boolean;
780
+ operator?: QueryOperator;
781
+ }): Query;
782
+ /** Drop every clause naming `field`. */
783
+ declare function withoutField(query: Query, field: string): Query;
784
+ /** Drop the clause at `index`, for a removable chip. */
785
+ declare function removeClause(query: Query, index: number): Query;
786
+ /** Every field the query names, in the order they first appear. */
787
+ declare function queryFields(query: Query): string[];
788
+ /** The values a field is constrained to, if any — for showing a filter as active. */
789
+ declare function fieldValues(query: Query, field: string): string[];
790
+ /** What a "filter for / filter out" control on a value asks for. */
791
+ interface QueryCellAction {
792
+ field: string;
793
+ value: string;
794
+ intent: "include" | "exclude";
795
+ }
796
+ /**
797
+ * Fold a cell action into the query.
798
+ *
799
+ * The pair of buttons on a log cell is the fastest path from "I noticed this
800
+ * value" to a filtered view, and the reason it works is that the result is a
801
+ * query the reader can then see, edit and share — not a hidden filter stack
802
+ * with its own rules.
803
+ */
804
+ declare function applyCellAction(query: Query, action: QueryCellAction): Query;
805
+ //#endregion
806
+ //#region src/shells/query-bar.d.ts
807
+ /** A field the query can constrain, offered as a completion. */
808
+ interface QueryField {
809
+ name: string;
810
+ /** Shown beside the name — a type, a count, whatever tells them apart. */
811
+ hint?: string;
812
+ /** Known values, offered once the reader has typed `field:`. */
813
+ values?: string[];
814
+ }
815
+ /** Localized strings for the query bar. */
816
+ interface QueryBarLabels {
817
+ placeholder?: string;
818
+ ariaLabel?: string;
819
+ clear?: string;
820
+ removeClause?: (clause: string) => string;
821
+ fieldsHeading?: string;
822
+ valuesHeading?: string;
823
+ syntaxHint?: ReactNode;
824
+ }
825
+ interface QueryBarProps {
826
+ value: Query;
827
+ onChange: (query: Query) => void;
828
+ /** Fields offered as completions, with their known values. */
829
+ fields?: QueryField[];
830
+ /** Show each clause as a removable chip below the input. */
831
+ showClauses?: boolean;
832
+ /** Commit on every keystroke instead of on Enter and blur. */
833
+ live?: boolean;
834
+ disabled?: boolean;
835
+ className?: string;
836
+ labels?: QueryBarLabels;
837
+ }
838
+ /**
839
+ * QueryBar — one control for "find this" and "only these".
840
+ *
841
+ * A search box and a row of filter pickers answer halves of the same question
842
+ * and neither can express the other, so people end up using both and holding
843
+ * the combination in their head. Typing the filter is what closes that: the
844
+ * whole question is one string, which means it can be read back, corrected in
845
+ * place, pasted to a colleague, and stored in a URL.
846
+ *
847
+ * The text is the source of truth while the reader is typing; the parsed query
848
+ * is committed on Enter or blur. Anything half-written parses to a plain term
849
+ * rather than an error, so the bar never argues with someone mid-word.
850
+ *
851
+ * @example
852
+ * ```tsx
853
+ * <QueryBar
854
+ * value={query}
855
+ * onChange={setQuery}
856
+ * fields={[{ name: "path", values: ["/checkout", "/cart"] }]}
857
+ * showClauses
858
+ * />
859
+ * ```
860
+ */
861
+ declare function QueryBar({ value, onChange, fields, showClauses, live, disabled, className, labels: customLabels }: QueryBarProps): import("react").JSX.Element;
862
+ declare namespace QueryBar {
863
+ var displayName: string;
864
+ }
865
+ //#endregion
705
866
  //#region src/shells/time-range-control.d.ts
706
867
  /** A named window offered in the quick-select list. */
707
868
  interface TimeRangePreset {
@@ -1037,156 +1198,6 @@ declare const LogTable: <Row>(props: LogTableProps<Row> & {
1037
1198
  ref?: Ref<LogTableHandle>;
1038
1199
  }) => ReturnType<typeof LogTableInner>;
1039
1200
  //#endregion
1040
- //#region src/lib/query/query-ast.d.ts
1041
- /**
1042
- * A search query, as a value.
1043
- *
1044
- * Free-text search and a row of filter pickers answer different halves of the
1045
- * same question, and neither can express the other: a picker cannot say "not
1046
- * this", and a text box cannot say "this field, exactly". A parsed query is one
1047
- * thing that does both, and — because it is a value rather than a widget's
1048
- * internal state — it survives a URL, a saved view, and the trip to a server
1049
- * that has to turn it into a database filter.
1050
- *
1051
- * The grammar follows the one analytics tools have converged on (Elastic's
1052
- * `EuiSearchBar`, Kibana, GitHub's issue search), minus the parts that only
1053
- * make sense against a Lucene index:
1054
- *
1055
- * error a term anywhere in the row
1056
- * "connection reset" a phrase, kept together
1057
- * -health a term that must not appear
1058
- * path:/checkout a field equal to a value
1059
- * path:(/a or /b) a field equal to any of several values
1060
- * -status:200 a field that must not equal a value
1061
- * status>=500 a comparison
1062
- * path:*checkout* the field contains this somewhere
1063
- * utm_source:* the field is present at all
1064
- *
1065
- * Clauses combine with AND; `or` only groups values inside one field. That is
1066
- * a deliberate ceiling: arbitrary boolean nesting reads worse than it queries,
1067
- * and every backend this targets can express the restricted form directly.
1068
- */
1069
- /** How a field clause compares. */
1070
- type QueryOperator = "eq" | "contains" | "gt" | "gte" | "lt" | "lte" | "exists";
1071
- /** A bare or quoted word matched against the whole row. */
1072
- interface QueryTermClause {
1073
- type: "term";
1074
- value: string;
1075
- negated: boolean;
1076
- }
1077
- /** A constraint on one named field. Several values read as "any of". */
1078
- interface QueryFieldClause {
1079
- type: "field";
1080
- field: string;
1081
- operator: QueryOperator;
1082
- values: string[];
1083
- negated: boolean;
1084
- }
1085
- type QueryClause = QueryTermClause | QueryFieldClause;
1086
- /** A parsed query: clauses combined with AND. */
1087
- interface Query {
1088
- clauses: QueryClause[];
1089
- }
1090
- declare const EMPTY_QUERY: Query;
1091
- /** Whether a query constrains anything at all. */
1092
- declare function isEmptyQuery(query: Query | null | undefined): boolean;
1093
- /** Add a clause unless an identical one is already there. */
1094
- declare function addClause(query: Query, clause: QueryClause): Query;
1095
- /**
1096
- * Constrain a field to a value — what a cell's "filter for this" action does.
1097
- *
1098
- * Applying the opposite of a constraint already present replaces it rather than
1099
- * adding it: `status:200` then "filter out 200" should read as one changed
1100
- * mind, not as a query that can never match.
1101
- */
1102
- declare function withFieldValue(query: Query, field: string, value: string, options?: {
1103
- negated?: boolean;
1104
- operator?: QueryOperator;
1105
- }): Query;
1106
- /** Drop every clause naming `field`. */
1107
- declare function withoutField(query: Query, field: string): Query;
1108
- /** Drop the clause at `index`, for a removable chip. */
1109
- declare function removeClause(query: Query, index: number): Query;
1110
- /** Every field the query names, in the order they first appear. */
1111
- declare function queryFields(query: Query): string[];
1112
- /** The values a field is constrained to, if any — for showing a filter as active. */
1113
- declare function fieldValues(query: Query, field: string): string[];
1114
- /** What a "filter for / filter out" control on a value asks for. */
1115
- interface QueryCellAction {
1116
- field: string;
1117
- value: string;
1118
- intent: "include" | "exclude";
1119
- }
1120
- /**
1121
- * Fold a cell action into the query.
1122
- *
1123
- * The pair of buttons on a log cell is the fastest path from "I noticed this
1124
- * value" to a filtered view, and the reason it works is that the result is a
1125
- * query the reader can then see, edit and share — not a hidden filter stack
1126
- * with its own rules.
1127
- */
1128
- declare function applyCellAction(query: Query, action: QueryCellAction): Query;
1129
- //#endregion
1130
- //#region src/shells/query-bar.d.ts
1131
- /** A field the query can constrain, offered as a completion. */
1132
- interface QueryField {
1133
- name: string;
1134
- /** Shown beside the name — a type, a count, whatever tells them apart. */
1135
- hint?: string;
1136
- /** Known values, offered once the reader has typed `field:`. */
1137
- values?: string[];
1138
- }
1139
- /** Localized strings for the query bar. */
1140
- interface QueryBarLabels {
1141
- placeholder?: string;
1142
- ariaLabel?: string;
1143
- clear?: string;
1144
- removeClause?: (clause: string) => string;
1145
- fieldsHeading?: string;
1146
- valuesHeading?: string;
1147
- syntaxHint?: ReactNode;
1148
- }
1149
- interface QueryBarProps {
1150
- value: Query;
1151
- onChange: (query: Query) => void;
1152
- /** Fields offered as completions, with their known values. */
1153
- fields?: QueryField[];
1154
- /** Show each clause as a removable chip below the input. */
1155
- showClauses?: boolean;
1156
- /** Commit on every keystroke instead of on Enter and blur. */
1157
- live?: boolean;
1158
- disabled?: boolean;
1159
- className?: string;
1160
- labels?: QueryBarLabels;
1161
- }
1162
- /**
1163
- * QueryBar — one control for "find this" and "only these".
1164
- *
1165
- * A search box and a row of filter pickers answer halves of the same question
1166
- * and neither can express the other, so people end up using both and holding
1167
- * the combination in their head. Typing the filter is what closes that: the
1168
- * whole question is one string, which means it can be read back, corrected in
1169
- * place, pasted to a colleague, and stored in a URL.
1170
- *
1171
- * The text is the source of truth while the reader is typing; the parsed query
1172
- * is committed on Enter or blur. Anything half-written parses to a plain term
1173
- * rather than an error, so the bar never argues with someone mid-word.
1174
- *
1175
- * @example
1176
- * ```tsx
1177
- * <QueryBar
1178
- * value={query}
1179
- * onChange={setQuery}
1180
- * fields={[{ name: "path", values: ["/checkout", "/cart"] }]}
1181
- * showClauses
1182
- * />
1183
- * ```
1184
- */
1185
- declare function QueryBar({ value, onChange, fields, showClauses, live, disabled, className, labels: customLabels }: QueryBarProps): import("react").JSX.Element;
1186
- declare namespace QueryBar {
1187
- var displayName: string;
1188
- }
1189
- //#endregion
1190
1201
  //#region src/shells/field-sidebar.d.ts
1191
1202
  /** One value a field takes, with how often. */
1192
1203
  interface FieldValueCount {
@@ -1277,5 +1288,4 @@ declare namespace FieldSidebar {
1277
1288
  var displayName: string;
1278
1289
  }
1279
1290
  //#endregion
1280
- export { EventTimelineItem as $, DashboardGridProps as $t, LogTable as A, EnvPanel as At, TimeRangeControlLabels as B, ContentTabs as Bt, withFieldValue as C, ColumnDef as Ct, LogColumnPriority as D, DomainTableProps as Dt, LogColumn as E, DomainTable as Et, TimeSeriesPanelLabels as F, DeploymentTimelineProps as Ft, FlyoutProps as G, SidebarNavProps as Gt, TimeRangePreset as H, EditorToolbar as Ht, TimeSeriesPanelProps as I, SettingsForm as It, ScoreBreakdown as J, StatusSelect as Jt, ScoreAxis as K, AppMenubar as Kt, DEFAULT_TIME_PRESETS as L, SettingsFormProps as Lt, LogTableLabels as M, ProjectSwitcher as Mt, LogTableProps as N, ProjectSwitcherProps as Nt, LogDensity as O, BranchSelect as Ot, TimeSeriesPanel as P, DeploymentTimeline as Pt, EventTimelineGroup as Q, DashboardGrid as Qt, RefreshSetting as R, FaqAccordion as Rt, removeClause as S, useToast as St, LogCellAction as T, DataTableProps as Tt, Flyout as U, EditorToolbarProps as Ut, TimeRangeControlProps as V, ContentTabsProps as Vt, FlyoutLabels as W, SidebarNav as Wt, ScoreBreakdownProps as X, SearchCombobox as Xt, ScoreBreakdownLabels as Y, StatusSelectProps as Yt, EventTimeline as Z, SearchComboboxProps as Zt, addClause as _, ToastMessage as _t, FieldValueCount as a, WorkflowCanvasProps as at, isEmptyQuery as b, ToastVariant as bt, QueryBarProps as c, KeyValueEditorLabels as ct, Query as d, FailureList as dt, CommandPaletteTrigger as en, EventTimelineLabels as et, QueryCellAction as f, FailureListLabels as ft, QueryTermClause as g, ToastContextValue as gt, QueryOperator as h, ToastAction as ht, FieldSummary as i, WorkflowCanvasConnection as it, LogTableHandle as j, EnvPanelProps as jt, LogSort as k, BranchSelectProps as kt, QueryField as l, KeyValueEditorProps as lt, QueryFieldClause as m, NotificationToast as mt, FieldSidebarLabels as n, CommandPalette as nn, EventTimelineTone as nt, QueryBar as o, WorkflowCanvasStep as ot, QueryClause as p, FailureListProps as pt, ScoreBand as q, AppMenubarProps as qt, FieldSidebarProps as r, CommandPaletteProps as rn, WorkflowCanvas as rt, QueryBarLabels as s, KeyValueEditor as st, FieldSidebar as t, CommandPaletteTriggerProps as tn, EventTimelineProps as tt, EMPTY_QUERY as u, KeyValueEntry as ut, applyCellAction as v, ToastProvider as vt, withoutField as w, DataTable as wt, queryFields as x, toast as xt, fieldValues as y, ToastProviderProps as yt, TimeRangeControl as z, FaqAccordionProps as zt };
1281
- //# sourceMappingURL=field-sidebar-B5SQC35J.d.cts.map
1291
+ export { EventTimelineItem as $, DashboardGridProps as $t, QueryCellAction as A, EnvPanel as At, removeClause as B, ContentTabs as Bt, TimeRangePreset as C, ColumnDef as Ct, QueryField as D, DomainTableProps as Dt, QueryBarProps as E, DomainTable as Et, addClause as F, DeploymentTimelineProps as Ft, FlyoutProps as G, SidebarNavProps as Gt, withoutField as H, EditorToolbar as Ht, applyCellAction as I, SettingsForm as It, ScoreBreakdown as J, StatusSelect as Jt, ScoreAxis as K, AppMenubar as Kt, fieldValues as L, SettingsFormProps as Lt, QueryFieldClause as M, ProjectSwitcher as Mt, QueryOperator as N, ProjectSwitcherProps as Nt, EMPTY_QUERY as O, BranchSelect as Ot, QueryTermClause as P, DeploymentTimeline as Pt, EventTimelineGroup as Q, DashboardGrid as Qt, isEmptyQuery as R, FaqAccordion as Rt, TimeRangeControlProps as S, useToast as St, QueryBarLabels as T, DataTableProps as Tt, Flyout as U, EditorToolbarProps as Ut, withFieldValue as V, ContentTabsProps as Vt, FlyoutLabels as W, SidebarNav as Wt, ScoreBreakdownProps as X, SearchCombobox as Xt, ScoreBreakdownLabels as Y, StatusSelectProps as Yt, EventTimeline as Z, SearchComboboxProps as Zt, TimeSeriesPanelProps as _, ToastMessage as _t, FieldValueCount as a, WorkflowCanvasProps as at, TimeRangeControl as b, ToastVariant as bt, LogColumnPriority as c, KeyValueEditorLabels as ct, LogTable as d, FailureList as dt, CommandPaletteTrigger as en, EventTimelineLabels as et, LogTableHandle as f, FailureListLabels as ft, TimeSeriesPanelLabels as g, ToastContextValue as gt, TimeSeriesPanel as h, ToastAction as ht, FieldSummary as i, WorkflowCanvasConnection as it, QueryClause as j, EnvPanelProps as jt, Query as k, BranchSelectProps as kt, LogDensity as l, KeyValueEditorProps as lt, LogTableProps as m, NotificationToast as mt, FieldSidebarLabels as n, CommandPalette as nn, EventTimelineTone as nt, LogCellAction as o, WorkflowCanvasStep as ot, LogTableLabels as p, FailureListProps as pt, ScoreBand as q, AppMenubarProps as qt, FieldSidebarProps as r, CommandPaletteProps as rn, WorkflowCanvas as rt, LogColumn as s, KeyValueEditor as st, FieldSidebar as t, CommandPaletteTriggerProps as tn, EventTimelineProps as tt, LogSort as u, KeyValueEntry as ut, DEFAULT_TIME_PRESETS as v, ToastProvider as vt, QueryBar as w, DataTable as wt, TimeRangeControlLabels as x, toast as xt, RefreshSetting as y, ToastProviderProps as yt, queryFields as z, FaqAccordionProps as zt };