anton-bakker-feedback 0.2.0 → 0.3.1
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/dist/chunks/{i18n-RpKqSWAT.js → i18n-Du-or3T4.js} +3 -102
- package/dist/chunks/i18n-Du-or3T4.js.map +1 -0
- package/dist/chunks/observability-CfwHKObh.js +102 -0
- package/dist/chunks/observability-CfwHKObh.js.map +1 -0
- package/dist/chunks/submitResolver-DsfkrUHY.js +133 -0
- package/dist/chunks/submitResolver-DsfkrUHY.js.map +1 -0
- package/dist/config/database.d.ts +76 -0
- package/dist/config/database.d.ts.map +1 -0
- package/dist/core/formTypes.d.ts +65 -0
- package/dist/core/formTypes.d.ts.map +1 -0
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/models/StoredFeedbackItem.d.ts +79 -0
- package/dist/models/StoredFeedbackItem.d.ts.map +1 -0
- package/dist/react/admin/FeedbackDetailPage.d.ts +7 -25
- package/dist/react/admin/FeedbackDetailPage.d.ts.map +1 -1
- package/dist/react/admin/FeedbackListPage.d.ts +20 -0
- package/dist/react/admin/FeedbackListPage.d.ts.map +1 -0
- package/dist/react/admin/FeedbackUpdatePage.d.ts +8 -30
- package/dist/react/admin/FeedbackUpdatePage.d.ts.map +1 -1
- package/dist/react/admin/__tests__/FeedbackListPage.test.d.ts.map +1 -0
- package/dist/react/admin/index.d.ts +3 -2
- package/dist/react/admin/index.d.ts.map +1 -1
- package/dist/react/admin/index.js +352 -1259
- package/dist/react/admin/index.js.map +1 -1
- package/dist/react/admin/types.d.ts +20 -14
- package/dist/react/admin/types.d.ts.map +1 -1
- package/dist/react.js +9 -136
- package/dist/react.js.map +1 -1
- package/dist/server/FeedbackService.d.ts +32 -0
- package/dist/server/FeedbackService.d.ts.map +1 -0
- package/dist/server/index.d.ts +15 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/listHandler.d.ts +17 -0
- package/dist/server/listHandler.d.ts.map +1 -0
- package/dist/server.d.ts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +202 -1
- package/dist/server.js.map +1 -1
- package/dist/types/context.d.ts +92 -0
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/feedback.d.ts +30 -0
- package/dist/types/feedback.d.ts.map +1 -0
- package/package.json +7 -1
- package/dist/chunks/i18n-RpKqSWAT.js.map +0 -1
- package/dist/react/admin/__tests__/FeedbackUpdatePage.integration.test.d.ts +0 -2
- package/dist/react/admin/__tests__/FeedbackUpdatePage.integration.test.d.ts.map +0 -1
- package/dist/react/admin/components/BrowserContext.d.ts +0 -32
- package/dist/react/admin/components/BrowserContext.d.ts.map +0 -1
- package/dist/react/admin/components/DataTable.d.ts +0 -55
- package/dist/react/admin/components/DataTable.d.ts.map +0 -1
- package/dist/react/admin/components/DialogueHistory.d.ts +0 -27
- package/dist/react/admin/components/DialogueHistory.d.ts.map +0 -1
- package/dist/react/admin/components/EditableFields.d.ts +0 -126
- package/dist/react/admin/components/EditableFields.d.ts.map +0 -1
- package/dist/react/admin/components/FeedbackListPage.d.ts +0 -19
- package/dist/react/admin/components/FeedbackListPage.d.ts.map +0 -1
- package/dist/react/admin/components/FeedbackListPage.test.d.ts.map +0 -1
- package/dist/react/admin/components/FilterControls.d.ts +0 -28
- package/dist/react/admin/components/FilterControls.d.ts.map +0 -1
- package/dist/react/admin/components/NavigationLink.d.ts +0 -31
- package/dist/react/admin/components/NavigationLink.d.ts.map +0 -1
- package/dist/react/admin/components/QuickActions.d.ts +0 -43
- package/dist/react/admin/components/QuickActions.d.ts.map +0 -1
- package/dist/react/admin/components/ScreenshotViewer.d.ts +0 -38
- package/dist/react/admin/components/ScreenshotViewer.d.ts.map +0 -1
- package/dist/react/admin/components/SortControls.d.ts +0 -29
- package/dist/react/admin/components/SortControls.d.ts.map +0 -1
- package/dist/react/admin/components/StatusBadge.d.ts +0 -23
- package/dist/react/admin/components/StatusBadge.d.ts.map +0 -1
- package/dist/react/admin/components/TypeBadge.d.ts +0 -23
- package/dist/react/admin/components/TypeBadge.d.ts.map +0 -1
- package/dist/react/admin/components/__tests__/BrowserContext.test.d.ts +0 -2
- package/dist/react/admin/components/__tests__/BrowserContext.test.d.ts.map +0 -1
- package/dist/react/admin/components/__tests__/DialogueHistory.test.d.ts +0 -2
- package/dist/react/admin/components/__tests__/DialogueHistory.test.d.ts.map +0 -1
- package/dist/react/admin/components/__tests__/EditableFields.test.d.ts +0 -2
- package/dist/react/admin/components/__tests__/EditableFields.test.d.ts.map +0 -1
- package/dist/react/admin/components/__tests__/QuickActions.test.d.ts +0 -2
- package/dist/react/admin/components/__tests__/QuickActions.test.d.ts.map +0 -1
- package/dist/react/admin/components/__tests__/ScreenshotViewer.test.d.ts +0 -2
- package/dist/react/admin/components/__tests__/ScreenshotViewer.test.d.ts.map +0 -1
- package/dist/react/admin/components/__tests__/badges.test.d.ts +0 -2
- package/dist/react/admin/components/__tests__/badges.test.d.ts.map +0 -1
- package/dist/react/admin/components/__tests__/controls.test.d.ts +0 -2
- package/dist/react/admin/components/__tests__/controls.test.d.ts.map +0 -1
- package/dist/react/admin/components/__tests__/table-navigation.test.d.ts +0 -2
- package/dist/react/admin/components/__tests__/table-navigation.test.d.ts.map +0 -1
- package/dist/react/admin/components/index.d.ts +0 -13
- package/dist/react/admin/components/index.d.ts.map +0 -1
- package/dist/react/admin/hooks/useFeedbackFilters.d.ts +0 -31
- package/dist/react/admin/hooks/useFeedbackFilters.d.ts.map +0 -1
- package/dist/react/admin/hooks/useFeedbackSort.d.ts +0 -42
- package/dist/react/admin/hooks/useFeedbackSort.d.ts.map +0 -1
- /package/dist/react/admin/{components → __tests__}/FeedbackListPage.test.d.ts +0 -0
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Configuration for a single column in the DataTable.
|
|
5
|
-
*/
|
|
6
|
-
export interface ColumnDef<T> {
|
|
7
|
-
/** Unique key for this column */
|
|
8
|
-
key: string;
|
|
9
|
-
/** Column header label */
|
|
10
|
-
header: string;
|
|
11
|
-
/** Function to render cell content from a row item */
|
|
12
|
-
render: (item: T) => React.ReactNode;
|
|
13
|
-
/** Whether this column is sortable (optional, for future use) */
|
|
14
|
-
sortable?: boolean;
|
|
15
|
-
/** Additional CSS class names for this column's cells */
|
|
16
|
-
className?: string;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Props for the DataTable component.
|
|
20
|
-
*/
|
|
21
|
-
export interface DataTableProps<T> {
|
|
22
|
-
/** Column definitions */
|
|
23
|
-
columns: ReadonlyArray<ColumnDef<T>>;
|
|
24
|
-
/** Data rows to display */
|
|
25
|
-
data: T[];
|
|
26
|
-
/** Function to extract a unique key from each row */
|
|
27
|
-
getRowKey: (item: T) => string;
|
|
28
|
-
/** Callback fired when a row is clicked */
|
|
29
|
-
onRowClick?: (item: T) => void;
|
|
30
|
-
/** Whether the table is loading data */
|
|
31
|
-
loading?: boolean;
|
|
32
|
-
/** Message to display when there are no rows */
|
|
33
|
-
emptyMessage?: string;
|
|
34
|
-
/** Additional CSS class names on the root element */
|
|
35
|
-
className?: string;
|
|
36
|
-
/** Additional CSS class names on the table element */
|
|
37
|
-
tableClassName?: string;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* DataTable — generic headless data table component.
|
|
41
|
-
*
|
|
42
|
-
* Renders a `<table>` with configurable columns and rows.
|
|
43
|
-
* Supports loading state, empty state, and row click handlers.
|
|
44
|
-
* No styles applied — consumer provides styling via `className` props.
|
|
45
|
-
*
|
|
46
|
-
* @example
|
|
47
|
-
* <DataTable
|
|
48
|
-
* columns={[{ key: 'title', header: 'Title', render: (item) => item.title }]}
|
|
49
|
-
* data={items}
|
|
50
|
-
* getRowKey={(item) => item.id}
|
|
51
|
-
* onRowClick={(item) => navigate(`/feedback/${item.id}`)}
|
|
52
|
-
* />
|
|
53
|
-
*/
|
|
54
|
-
export declare function DataTable<T>({ columns, data, getRowKey, onRowClick, loading, emptyMessage, className, tableClassName, }: DataTableProps<T>): React.JSX.Element;
|
|
55
|
-
//# sourceMappingURL=DataTable.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../../src/react/admin/components/DataTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACrC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,yBAAyB;IACzB,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,2BAA2B;IAC3B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,qDAAqD;IACrD,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC/B,2CAA2C;IAC3C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAC3B,OAAO,EACP,IAAI,EACJ,SAAS,EACT,UAAU,EACV,OAAe,EACf,YAAgC,EAChC,SAAS,EACT,cAAc,GACf,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+DvC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { DialogueEntry } from '../../../core/types.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Props for the DialogueHistory component.
|
|
6
|
-
*/
|
|
7
|
-
export interface DialogueHistoryProps {
|
|
8
|
-
/**
|
|
9
|
-
* Array of dialogue turns between user and assistant.
|
|
10
|
-
* Rendered in chronological order (index 0 first).
|
|
11
|
-
*/
|
|
12
|
-
dialogue: DialogueEntry[];
|
|
13
|
-
/** Additional CSS class names applied to the root element */
|
|
14
|
-
className?: string;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* DialogueHistory — headless conversation thread display component.
|
|
18
|
-
*
|
|
19
|
-
* Renders dialogue turns in chronological order with semantic distinction
|
|
20
|
-
* between user and assistant messages. No styling applied — consumer provides
|
|
21
|
-
* CSS via `className` prop.
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* <DialogueHistory dialogue={item.dialogueHistory} className="dialogue-thread" />
|
|
25
|
-
*/
|
|
26
|
-
export declare function DialogueHistory({ dialogue, className, }: DialogueHistoryProps): React.JSX.Element;
|
|
27
|
-
//# sourceMappingURL=DialogueHistory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DialogueHistory.d.ts","sourceRoot":"","sources":["../../../../src/react/admin/components/DialogueHistory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,SAAS,GACV,EAAE,oBAAoB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAqE1C"}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { FeedbackStatus, FeedbackType, FeedbackScope, FeedbackSize } from '../../../core/types.js';
|
|
3
|
-
|
|
4
|
-
export interface StatusSelectProps {
|
|
5
|
-
/** The current status (pre-selected) */
|
|
6
|
-
currentStatus: FeedbackStatus;
|
|
7
|
-
/** Valid target statuses (from useStatusTransition) */
|
|
8
|
-
allowedTargets: FeedbackStatus[];
|
|
9
|
-
/** Currently selected value */
|
|
10
|
-
value: FeedbackStatus;
|
|
11
|
-
/** Called when the user selects a different status */
|
|
12
|
-
onChange: (status: FeedbackStatus) => void;
|
|
13
|
-
/** Optional CSS class on the container */
|
|
14
|
-
className?: string;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* StatusSelect — renders only the statuses present in `allowedTargets`.
|
|
18
|
-
* The current status is shown as the pre-selected option but is NOT
|
|
19
|
-
* included in the selectable options (to prevent self-transitions).
|
|
20
|
-
*/
|
|
21
|
-
export declare function StatusSelect({ currentStatus, allowedTargets, value, onChange, className, }: StatusSelectProps): React.JSX.Element;
|
|
22
|
-
export interface TypeSelectProps {
|
|
23
|
-
/** Currently selected type */
|
|
24
|
-
value: FeedbackType;
|
|
25
|
-
/** Called when the user selects a different type */
|
|
26
|
-
onChange: (type: FeedbackType) => void;
|
|
27
|
-
/** Optional CSS class on the container */
|
|
28
|
-
className?: string;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* TypeSelect — renders all four FeedbackType values as options.
|
|
32
|
-
*/
|
|
33
|
-
export declare function TypeSelect({ value, onChange, className, }: TypeSelectProps): React.JSX.Element;
|
|
34
|
-
export interface ScopeSelectProps {
|
|
35
|
-
/** Currently selected scope (undefined = not set) */
|
|
36
|
-
value: FeedbackScope | undefined;
|
|
37
|
-
/** Called when the user selects/clears scope */
|
|
38
|
-
onChange: (scope: FeedbackScope | undefined) => void;
|
|
39
|
-
/** Optional CSS class on the container */
|
|
40
|
-
className?: string;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* ScopeSelect — renders a blank "— not set —" option plus all three FeedbackScope values.
|
|
44
|
-
* Scope is optional, so the blank option allows clearing it.
|
|
45
|
-
*/
|
|
46
|
-
export declare function ScopeSelect({ value, onChange, className, }: ScopeSelectProps): React.JSX.Element;
|
|
47
|
-
export interface SizeSelectProps {
|
|
48
|
-
/** Currently selected size (undefined = not set) */
|
|
49
|
-
value: FeedbackSize | undefined;
|
|
50
|
-
/** Called when the user selects/clears size */
|
|
51
|
-
onChange: (size: FeedbackSize | undefined) => void;
|
|
52
|
-
/** Optional CSS class on the container */
|
|
53
|
-
className?: string;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* SizeSelect — renders a blank "— not set —" option plus all four FeedbackSize values.
|
|
57
|
-
* Size is optional, so the blank option allows clearing it.
|
|
58
|
-
*/
|
|
59
|
-
export declare function SizeSelect({ value, onChange, className, }: SizeSelectProps): React.JSX.Element;
|
|
60
|
-
export interface AssigneeInputProps {
|
|
61
|
-
/** Current assignee (free text, or undefined) */
|
|
62
|
-
value: string | undefined;
|
|
63
|
-
/** Called when the assignee changes */
|
|
64
|
-
onChange: (assignedTo: string | undefined) => void;
|
|
65
|
-
/** Optional current user for "Assign to me" shortcut */
|
|
66
|
-
currentUser?: {
|
|
67
|
-
userId: string;
|
|
68
|
-
name?: string;
|
|
69
|
-
};
|
|
70
|
-
/** Optional CSS class on the container */
|
|
71
|
-
className?: string;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* AssigneeInput — free-text input for assigning a feedback item.
|
|
75
|
-
* When `currentUser` is provided, an "Assign to me" button pre-fills the field.
|
|
76
|
-
*/
|
|
77
|
-
export declare function AssigneeInput({ value, onChange, currentUser, className, }: AssigneeInputProps): React.JSX.Element;
|
|
78
|
-
export interface TagsInputProps {
|
|
79
|
-
/** Current tags as a string array */
|
|
80
|
-
value: string[];
|
|
81
|
-
/** Called with the parsed tag array when the input changes */
|
|
82
|
-
onChange: (tags: string[]) => void;
|
|
83
|
-
/** Optional CSS class on the container */
|
|
84
|
-
className?: string;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* TagsInput — comma-separated text input that produces a string[] value.
|
|
88
|
-
* Parses on each change: splits on commas, trims whitespace, removes empty strings.
|
|
89
|
-
*/
|
|
90
|
-
export declare function TagsInput({ value, onChange, className, }: TagsInputProps): React.JSX.Element;
|
|
91
|
-
export interface CorrectionNoteProps {
|
|
92
|
-
/** Current correction note text */
|
|
93
|
-
value: string;
|
|
94
|
-
/** Called when the text changes */
|
|
95
|
-
onChange: (note: string) => void;
|
|
96
|
-
/**
|
|
97
|
-
* When true, the textarea is required — form save is blocked until
|
|
98
|
-
* the note is non-empty (enforced by FeedbackUpdatePage).
|
|
99
|
-
*/
|
|
100
|
-
required: boolean;
|
|
101
|
-
/** Optional CSS class on the container */
|
|
102
|
-
className?: string;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* CorrectionNote — textarea for explaining why a classification field changed.
|
|
106
|
-
* Rendered only when a classification field (type, scope, size) has changed.
|
|
107
|
-
* When `required` is true, sets aria-required="true".
|
|
108
|
-
*/
|
|
109
|
-
export declare function CorrectionNote({ value, onChange, required, className, }: CorrectionNoteProps): React.JSX.Element;
|
|
110
|
-
/**
|
|
111
|
-
* EditableFields — namespace of form-field components for FeedbackUpdatePage.
|
|
112
|
-
*
|
|
113
|
-
* Usage:
|
|
114
|
-
* import { EditableFields } from './components/EditableFields.js';
|
|
115
|
-
* <EditableFields.StatusSelect ... />
|
|
116
|
-
*/
|
|
117
|
-
export declare const EditableFields: {
|
|
118
|
-
readonly StatusSelect: typeof StatusSelect;
|
|
119
|
-
readonly TypeSelect: typeof TypeSelect;
|
|
120
|
-
readonly ScopeSelect: typeof ScopeSelect;
|
|
121
|
-
readonly SizeSelect: typeof SizeSelect;
|
|
122
|
-
readonly AssigneeInput: typeof AssigneeInput;
|
|
123
|
-
readonly TagsInput: typeof TagsInput;
|
|
124
|
-
readonly CorrectionNote: typeof CorrectionNote;
|
|
125
|
-
};
|
|
126
|
-
//# sourceMappingURL=EditableFields.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditableFields.d.ts","sourceRoot":"","sources":["../../../../src/react/admin/components/EditableFields.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { FeedbackListPageProps } from '../types.js';
|
|
3
|
-
|
|
4
|
-
export type { FeedbackListPageProps };
|
|
5
|
-
/**
|
|
6
|
-
* FeedbackListPage — admin list page for browsing and filtering feedback items.
|
|
7
|
-
*
|
|
8
|
-
* Headless/unstyled component using Inversion of Control pattern.
|
|
9
|
-
* Consumer provides data via `items` prop; this component manages
|
|
10
|
-
* filter and sort state internally.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* <FeedbackListPage
|
|
14
|
-
* items={myItems}
|
|
15
|
-
* onNavigate={(path) => router.push(path)}
|
|
16
|
-
* />
|
|
17
|
-
*/
|
|
18
|
-
export declare function FeedbackListPage({ items, loading, onNavigate, className, tableClassName, filterClassName, emptyStateMessage, }: FeedbackListPageProps): React.JSX.Element;
|
|
19
|
-
//# sourceMappingURL=FeedbackListPage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackListPage.d.ts","sourceRoot":"","sources":["../../../../src/react/admin/components/FeedbackListPage.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAQzD,YAAY,EAAE,qBAAqB,EAAE,CAAC;AA4CtC;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,OAAe,EACf,UAAU,EACV,SAAS,EACT,cAAc,EACd,eAAe,EACf,iBAA8C,GAC/C,EAAE,qBAAqB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA0L3C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackListPage.test.d.ts","sourceRoot":"","sources":["../../../../src/react/admin/components/FeedbackListPage.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { AdminFilterState } from '../types.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Props for the FilterControls component.
|
|
6
|
-
*/
|
|
7
|
-
export interface FilterControlsProps {
|
|
8
|
-
/** Current filter state */
|
|
9
|
-
filters: AdminFilterState;
|
|
10
|
-
/** Callback fired when any filter value changes */
|
|
11
|
-
onChange: (filters: AdminFilterState) => void;
|
|
12
|
-
/** Additional CSS class names */
|
|
13
|
-
className?: string;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* FilterControls — headless filtering controls for feedback items.
|
|
17
|
-
*
|
|
18
|
-
* Renders `<select>` elements for status, type, and environment filters.
|
|
19
|
-
* No direct state management — emits changes via `onChange` callback.
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* <FilterControls
|
|
23
|
-
* filters={{ status: '', type: '', environment: '' }}
|
|
24
|
-
* onChange={(f) => setFilters(f)}
|
|
25
|
-
* />
|
|
26
|
-
*/
|
|
27
|
-
export declare function FilterControls({ filters, onChange, className }: FilterControlsProps): React.JSX.Element;
|
|
28
|
-
//# sourceMappingURL=FilterControls.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterControls.d.ts","sourceRoot":"","sources":["../../../../src/react/admin/components/FilterControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2BAA2B;IAC3B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC9C,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA0BD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgFvG"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Props for the NavigationLink component.
|
|
5
|
-
*/
|
|
6
|
-
export interface NavigationLinkProps {
|
|
7
|
-
/** The path to navigate to when clicked */
|
|
8
|
-
path: string;
|
|
9
|
-
/** Callback that receives the path on click (consumer owns routing) */
|
|
10
|
-
onNavigate: (path: string) => void;
|
|
11
|
-
/** Content to render inside the link element */
|
|
12
|
-
children: React.ReactNode;
|
|
13
|
-
/** Additional CSS class names */
|
|
14
|
-
className?: string;
|
|
15
|
-
/** Optional aria-label for accessibility */
|
|
16
|
-
'aria-label'?: string;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* NavigationLink — headless navigation element using Inversion of Control.
|
|
20
|
-
*
|
|
21
|
-
* Renders a `<button>` element that calls `onNavigate(path)` on click.
|
|
22
|
-
* Does NOT use `<a href>` to remain framework-agnostic.
|
|
23
|
-
* Consumer owns routing — this component just signals the desired destination.
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* <NavigationLink path="/feedback/123" onNavigate={navigate}>
|
|
27
|
-
* View detail
|
|
28
|
-
* </NavigationLink>
|
|
29
|
-
*/
|
|
30
|
-
export declare function NavigationLink({ path, onNavigate, children, className, 'aria-label': ariaLabel, }: NavigationLinkProps): React.JSX.Element;
|
|
31
|
-
//# sourceMappingURL=NavigationLink.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationLink.d.ts","sourceRoot":"","sources":["../../../../src/react/admin/components/NavigationLink.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,gDAAgD;IAChD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,YAAY,EAAE,SAAS,GACxB,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAuBzC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { StoredFeedbackItem } from '../../../core/types.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Props for the QuickActions component.
|
|
6
|
-
*/
|
|
7
|
-
export interface QuickActionsProps {
|
|
8
|
-
/** The feedback item to act on */
|
|
9
|
-
item: StoredFeedbackItem;
|
|
10
|
-
/**
|
|
11
|
-
* Called when a status transition is requested.
|
|
12
|
-
* Consumer owns the data mutation.
|
|
13
|
-
*/
|
|
14
|
-
updateItem: (id: string, patch: Partial<StoredFeedbackItem>) => Promise<void>;
|
|
15
|
-
/** Called when a navigation action is triggered */
|
|
16
|
-
onNavigate: (path: string) => void;
|
|
17
|
-
/** Optional current user for displaying user-specific actions */
|
|
18
|
-
currentUser?: {
|
|
19
|
-
userId: string;
|
|
20
|
-
name?: string;
|
|
21
|
-
};
|
|
22
|
-
/** Additional CSS class names applied to the root element */
|
|
23
|
-
className?: string;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* QuickActions — headless action button group for common feedback operations.
|
|
27
|
-
*
|
|
28
|
-
* Renders status transition buttons based on allowed transitions for the
|
|
29
|
-
* current status, plus navigation buttons for editing and returning to the list.
|
|
30
|
-
* Buttons are disabled during async update operations. No styling applied —
|
|
31
|
-
* consumer provides CSS via `className` prop.
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* <QuickActions
|
|
35
|
-
* item={feedbackItem}
|
|
36
|
-
* updateItem={updateItem}
|
|
37
|
-
* onNavigate={navigate}
|
|
38
|
-
* currentUser={currentUser}
|
|
39
|
-
* className="quick-actions-bar"
|
|
40
|
-
* />
|
|
41
|
-
*/
|
|
42
|
-
export declare function QuickActions({ item, updateItem, onNavigate, className, }: QuickActionsProps): React.JSX.Element;
|
|
43
|
-
//# sourceMappingURL=QuickActions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QuickActions.d.ts","sourceRoot":"","sources":["../../../../src/react/admin/components/QuickActions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAkB,MAAM,wBAAwB,CAAC;AAuBjF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,IAAI,EAAE,kBAAkB,CAAC;IACzB;;;OAGG;IACH,UAAU,EAAE,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC,KAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,mDAAmD;IACnD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,iEAAiE;IACjE,WAAW,CAAC,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,GACV,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+EvC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Props for the ScreenshotViewer component.
|
|
5
|
-
*/
|
|
6
|
-
export interface ScreenshotViewerProps {
|
|
7
|
-
/**
|
|
8
|
-
* S3 key for the screenshot. When provided, `generateScreenshotUrl` is
|
|
9
|
-
* called to obtain a display URL. When absent or null, a fallback message
|
|
10
|
-
* is shown.
|
|
11
|
-
*/
|
|
12
|
-
screenshotS3Key?: string | null;
|
|
13
|
-
/**
|
|
14
|
-
* Consumer-provided function that resolves an S3 key to a displayable URL.
|
|
15
|
-
* If not provided and a key exists, a configuration hint is shown.
|
|
16
|
-
*/
|
|
17
|
-
generateScreenshotUrl?: (s3Key: string) => Promise<string>;
|
|
18
|
-
/** Alt text for the screenshot image. Defaults to "Feedback screenshot". */
|
|
19
|
-
alt?: string;
|
|
20
|
-
/** Additional CSS class names applied to the root element */
|
|
21
|
-
className?: string;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* ScreenshotViewer — headless screenshot display component.
|
|
25
|
-
*
|
|
26
|
-
* Displays a screenshot image with accessibility attributes. Degrades
|
|
27
|
-
* gracefully when no screenshot is available or the URL resolver is not
|
|
28
|
-
* configured. No styling applied — consumer provides CSS via `className` prop.
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* <ScreenshotViewer
|
|
32
|
-
* screenshotS3Key={item.screenshotS3Key}
|
|
33
|
-
* generateScreenshotUrl={myUrlResolver}
|
|
34
|
-
* className="screenshot-panel"
|
|
35
|
-
* />
|
|
36
|
-
*/
|
|
37
|
-
export declare function ScreenshotViewer({ screenshotS3Key, generateScreenshotUrl, alt, className, }: ScreenshotViewerProps): React.JSX.Element;
|
|
38
|
-
//# sourceMappingURL=ScreenshotViewer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenshotViewer.d.ts","sourceRoot":"","sources":["../../../../src/react/admin/components/ScreenshotViewer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,4EAA4E;IAC5E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,eAAe,EACf,qBAAqB,EACrB,GAA2B,EAC3B,SAAS,GACV,EAAE,qBAAqB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkE3C"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { AdminSortState } from '../types.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Props for the SortControls component.
|
|
6
|
-
*/
|
|
7
|
-
export interface SortControlsProps {
|
|
8
|
-
/** Current sort state */
|
|
9
|
-
sort: AdminSortState;
|
|
10
|
-
/** Callback fired when sort field or direction changes */
|
|
11
|
-
onChange: (sort: AdminSortState) => void;
|
|
12
|
-
/** Additional CSS class names */
|
|
13
|
-
className?: string;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* SortControls — headless sorting controls for feedback items.
|
|
17
|
-
*
|
|
18
|
-
* Renders `<select>` elements for sort field and direction.
|
|
19
|
-
* Default sort is by priority. No direct state management — emits
|
|
20
|
-
* changes via `onChange` callback.
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* <SortControls
|
|
24
|
-
* sort={{ field: 'priority', direction: 'desc' }}
|
|
25
|
-
* onChange={(s) => setSort(s)}
|
|
26
|
-
* />
|
|
27
|
-
*/
|
|
28
|
-
export declare function SortControls({ sort, onChange, className }: SortControlsProps): React.JSX.Element;
|
|
29
|
-
//# sourceMappingURL=SortControls.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SortControls.d.ts","sourceRoot":"","sources":["../../../../src/react/admin/components/SortControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,0DAA0D;IAC1D,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACzC,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAeD;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAuDhG"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { FeedbackStatus } from '../../../core/types.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Props for the StatusBadge component.
|
|
6
|
-
*/
|
|
7
|
-
export interface StatusBadgeProps {
|
|
8
|
-
/** The feedback status value to display */
|
|
9
|
-
status: FeedbackStatus;
|
|
10
|
-
/** Additional CSS class names */
|
|
11
|
-
className?: string;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* StatusBadge — headless badge component for rendering a FeedbackStatus.
|
|
15
|
-
*
|
|
16
|
-
* Renders a `<span>` with a `data-status` attribute for CSS targeting.
|
|
17
|
-
* No styles applied — consumer provides styling via `className` prop.
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* <StatusBadge status="open" className="badge badge--open" />
|
|
21
|
-
*/
|
|
22
|
-
export declare function StatusBadge({ status, className }: StatusBadgeProps): React.JSX.Element;
|
|
23
|
-
//# sourceMappingURL=StatusBadge.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../../../src/react/admin/components/StatusBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,MAAM,EAAE,cAAc,CAAC;IACvB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAWD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAMtF"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { FeedbackType } from '../../../core/types.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Props for the TypeBadge component.
|
|
6
|
-
*/
|
|
7
|
-
export interface TypeBadgeProps {
|
|
8
|
-
/** The feedback type value to display */
|
|
9
|
-
type: FeedbackType;
|
|
10
|
-
/** Additional CSS class names */
|
|
11
|
-
className?: string;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* TypeBadge — headless badge component for rendering a FeedbackType.
|
|
15
|
-
*
|
|
16
|
-
* Renders a `<span>` with a `data-type` attribute for CSS targeting.
|
|
17
|
-
* No styles applied — consumer provides styling via `className` prop.
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* <TypeBadge type="bug" className="badge badge--bug" />
|
|
21
|
-
*/
|
|
22
|
-
export declare function TypeBadge({ type, className }: TypeBadgeProps): React.JSX.Element;
|
|
23
|
-
//# sourceMappingURL=TypeBadge.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TypeBadge.d.ts","sourceRoot":"","sources":["../../../../src/react/admin/components/TypeBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,IAAI,EAAE,YAAY,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAMhF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserContext.test.d.ts","sourceRoot":"","sources":["../../../../../src/react/admin/components/__tests__/BrowserContext.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DialogueHistory.test.d.ts","sourceRoot":"","sources":["../../../../../src/react/admin/components/__tests__/DialogueHistory.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditableFields.test.d.ts","sourceRoot":"","sources":["../../../../../src/react/admin/components/__tests__/EditableFields.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QuickActions.test.d.ts","sourceRoot":"","sources":["../../../../../src/react/admin/components/__tests__/QuickActions.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenshotViewer.test.d.ts","sourceRoot":"","sources":["../../../../../src/react/admin/components/__tests__/ScreenshotViewer.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"badges.test.d.ts","sourceRoot":"","sources":["../../../../../src/react/admin/components/__tests__/badges.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"controls.test.d.ts","sourceRoot":"","sources":["../../../../../src/react/admin/components/__tests__/controls.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-navigation.test.d.ts","sourceRoot":"","sources":["../../../../../src/react/admin/components/__tests__/table-navigation.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export { StatusBadge } from './StatusBadge.js';
|
|
2
|
-
export type { StatusBadgeProps } from './StatusBadge.js';
|
|
3
|
-
export { TypeBadge } from './TypeBadge.js';
|
|
4
|
-
export type { TypeBadgeProps } from './TypeBadge.js';
|
|
5
|
-
export { FilterControls } from './FilterControls.js';
|
|
6
|
-
export type { FilterControlsProps } from './FilterControls.js';
|
|
7
|
-
export { SortControls } from './SortControls.js';
|
|
8
|
-
export type { SortControlsProps } from './SortControls.js';
|
|
9
|
-
export { DataTable } from './DataTable.js';
|
|
10
|
-
export type { DataTableProps, ColumnDef } from './DataTable.js';
|
|
11
|
-
export { NavigationLink } from './NavigationLink.js';
|
|
12
|
-
export type { NavigationLinkProps } from './NavigationLink.js';
|
|
13
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/react/admin/components/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { StoredFeedbackItem } from '../../../core/types.js';
|
|
2
|
-
import { AdminFilterState } from '../types.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Result returned by `useFeedbackFilters`.
|
|
6
|
-
*/
|
|
7
|
-
export interface UseFeedbackFiltersResult {
|
|
8
|
-
/** Current filter state */
|
|
9
|
-
filters: AdminFilterState;
|
|
10
|
-
/** Update a single filter or replace the entire filter state */
|
|
11
|
-
setFilters: (filters: AdminFilterState) => void;
|
|
12
|
-
/** Reset all filters to their default (empty) values */
|
|
13
|
-
clearFilters: () => void;
|
|
14
|
-
/**
|
|
15
|
-
* Apply the current filters to an items array.
|
|
16
|
-
* Filters are ANDed — an item must pass all active filters to be included.
|
|
17
|
-
*/
|
|
18
|
-
applyFilters: (items: StoredFeedbackItem[]) => StoredFeedbackItem[];
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* useFeedbackFilters — manages filter state for the admin feedback list.
|
|
22
|
-
*
|
|
23
|
-
* Filters use AND logic: status × type × environment must all match.
|
|
24
|
-
* An empty string value ('') for a filter means "show all" for that dimension.
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* const { filters, setFilters, clearFilters, applyFilters } = useFeedbackFilters();
|
|
28
|
-
* const visibleItems = applyFilters(items);
|
|
29
|
-
*/
|
|
30
|
-
export declare function useFeedbackFilters(): UseFeedbackFiltersResult;
|
|
31
|
-
//# sourceMappingURL=useFeedbackFilters.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useFeedbackFilters.d.ts","sourceRoot":"","sources":["../../../../src/react/admin/hooks/useFeedbackFilters.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AASpD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,2BAA2B;IAC3B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,gEAAgE;IAChE,UAAU,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAChD,wDAAwD;IACxD,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB;;;OAGG;IACH,YAAY,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,CAAC;CACrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,IAAI,wBAAwB,CAiC7D"}
|