@eifi1/ui-kit 0.23.0 → 0.24.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/README.md +6 -6
- package/dist/chart.d.ts +2 -4
- package/dist/components/amount-input.d.ts +16 -9
- package/dist/components/amount-input.js +13 -11
- package/dist/components/amount-input.js.map +1 -1
- package/dist/components/autocomplete.d.ts +5 -0
- package/dist/components/autocomplete.js +39 -37
- package/dist/components/autocomplete.js.map +1 -1
- package/dist/components/button-group.d.ts +2 -4
- package/dist/components/calculator.d.ts +2 -4
- package/dist/components/column-mapper.d.ts +62 -9
- package/dist/components/column-mapper.js +85 -49
- package/dist/components/column-mapper.js.map +1 -1
- package/dist/components/combobox.d.ts +33 -1
- package/dist/components/combobox.js +8 -2
- package/dist/components/combobox.js.map +1 -1
- package/dist/components/confirm-dialog.d.ts +2 -4
- package/dist/components/copy-button.d.ts +2 -4
- package/dist/components/danger-confirm.d.ts +2 -4
- package/dist/components/danger-confirm.js +52 -5
- package/dist/components/danger-confirm.js.map +1 -1
- package/dist/components/entity-combobox.d.ts +13 -1
- package/dist/components/entity-combobox.js +13 -4
- package/dist/components/entity-combobox.js.map +1 -1
- package/dist/components/facing-pair.d.ts +2 -4
- package/dist/components/file-button.d.ts +2 -4
- package/dist/components/file-dropzone.d.ts +2 -4
- package/dist/components/form-actions.d.ts +1 -3
- package/dist/components/form-actions.js +15 -1
- package/dist/components/form-actions.js.map +1 -1
- package/dist/components/iban-input.d.ts +2 -4
- package/dist/components/language-select.d.ts +2 -4
- package/dist/components/money-field.d.ts +2 -4
- package/dist/components/multi-entity-combobox.d.ts +5 -1
- package/dist/components/multi-entity-combobox.js +11 -3
- package/dist/components/multi-entity-combobox.js.map +1 -1
- package/dist/components/number-field.d.ts +2 -4
- package/dist/components/number-input.d.ts +2 -4
- package/dist/components/numpad-sheet.d.ts +2 -4
- package/dist/components/phone-input.d.ts +2 -4
- package/dist/components/series-chart.d.ts +2 -4
- package/dist/components/settings-fields.d.ts +2 -4
- package/dist/components/share-card.d.ts +1 -3
- package/dist/components/text-link.d.ts +1 -3
- package/dist/components/time-input.d.ts +2 -4
- package/dist/components/ui.d.ts +2 -4
- package/dist/components/ui.js +55 -17
- package/dist/components/ui.js.map +1 -1
- package/dist/feedback/feedback-attachment.d.ts +66 -1
- package/dist/feedback/feedback-attachment.js +32 -12
- package/dist/feedback/feedback-attachment.js.map +1 -1
- package/dist/feedback/feedback-dialog.d.ts +66 -1
- package/dist/feedback/feedback-inbox.d.ts +67 -253
- package/dist/feedback/feedback-thread.d.ts +1 -3
- package/dist/feedback/feedback-thread.js +8 -2
- package/dist/feedback/feedback-thread.js.map +1 -1
- package/dist/{feedback-BxeQVzwq.d.ts → feedback-DOwPu-Il.d.ts} +878 -18
- package/dist/feedback.d.ts +2 -4
- package/dist/hooks/use-file-drop.d.ts +2 -4
- package/dist/i18n/defaults.d.ts +2 -4
- package/dist/i18n/german.d.ts +2 -4
- package/dist/i18n/kit-labels.d.ts +1 -3
- package/dist/i18n/languages.d.ts +2 -4
- package/dist/i18n/locales/de-CH.d.ts +2 -4
- package/dist/i18n/locales/en.d.ts +2 -4
- package/dist/i18n/locales/es.d.ts +2 -4
- package/dist/i18n/locales/fr.d.ts +2 -4
- package/dist/i18n/locales/hu.d.ts +2 -4
- package/dist/i18n/locales/it.d.ts +2 -4
- package/dist/i18n/locales/zh.d.ts +2 -4
- package/dist/i18n/review.d.ts +2 -4
- package/dist/index.d.ts +2 -4
- package/dist/lib/strip-fade.d.ts +2 -2
- package/dist/lib/strip-fade.js.map +1 -1
- package/dist/rhf/fields.d.ts +59 -8
- package/dist/rhf/fields.js +61 -3
- package/dist/rhf/fields.js.map +1 -1
- package/dist/rhf/form.d.ts +2 -4
- package/dist/rhf.d.ts +3 -5
- package/dist/rhf.js.map +1 -1
- package/dist/shell/app-shell.d.ts +1 -3
- package/dist/shell/top-bar-brand.d.ts +2 -4
- package/dist/shell.d.ts +1 -3
- package/dist/wizard/stepper-nav.d.ts +2 -4
- package/dist/wizard.d.ts +2 -4
- package/package.json +2 -2
- package/src/components/amount-input.tsx +37 -20
- package/src/components/autocomplete.tsx +16 -5
- package/src/components/column-mapper.tsx +181 -79
- package/src/components/combobox.tsx +41 -3
- package/src/components/danger-confirm.tsx +193 -22
- package/src/components/entity-combobox.tsx +28 -5
- package/src/components/form-actions.tsx +20 -1
- package/src/components/multi-entity-combobox.tsx +16 -3
- package/src/components/ui.tsx +107 -0
- package/src/feedback/feedback-attachment.tsx +65 -12
- package/src/feedback/feedback-thread.tsx +66 -6
- package/src/lib/strip-fade.ts +2 -2
- package/src/rhf/fields.tsx +167 -6
- package/src/rhf.ts +1 -1
- package/dist/feedback-attachment-fGAzZPf0.d.ts +0 -469
|
@@ -1,2 +1,67 @@
|
|
|
1
1
|
import 'react';
|
|
2
|
-
export {
|
|
2
|
+
export { a7 as DEFAULT_FEEDBACK_DIALOG_LABELS, aP as FeedbackAttachmentLabels, aU as FeedbackCategoryOption, b1 as FeedbackDialog, b2 as FeedbackDialogLabels, b3 as FeedbackDialogMultipleProps, b4 as FeedbackDialogProps, b5 as FeedbackDialogSingleProps, b6 as FeedbackDialogTextLabels, b7 as FeedbackMultipleSubmission, be as FeedbackSubmission } from '../feedback-DOwPu-Il.js';
|
|
3
|
+
import '../components/tooltip.js';
|
|
4
|
+
import '../hooks/use-anchored-rect.js';
|
|
5
|
+
import '../lib/clipping.js';
|
|
6
|
+
import '../data-table-labels-B7OdnM0S.js';
|
|
7
|
+
import '../components/data-table-sort.js';
|
|
8
|
+
import '../components/swipeable-row.js';
|
|
9
|
+
import '../components/mini-calendar.js';
|
|
10
|
+
import '../components/calendar-heatmap.js';
|
|
11
|
+
import '../components/popover.js';
|
|
12
|
+
import '../components/chip.js';
|
|
13
|
+
import 'lucide-react';
|
|
14
|
+
import '../components/field-sync.js';
|
|
15
|
+
import '../wizard/types.js';
|
|
16
|
+
import '../tour/tour.js';
|
|
17
|
+
import '../search/command-palette.js';
|
|
18
|
+
import '../search/global-search.js';
|
|
19
|
+
import '../search/search-index.js';
|
|
20
|
+
import '../components/month-picker.js';
|
|
21
|
+
import '../components/page-contents.js';
|
|
22
|
+
import '../components/series-chart-labels.js';
|
|
23
|
+
import '../components/pie-chart-labels.js';
|
|
24
|
+
import '../components/sparkline.js';
|
|
25
|
+
import '../components/stat-tile.js';
|
|
26
|
+
import '../components/signature-pad.js';
|
|
27
|
+
import '../components/password-strength.js';
|
|
28
|
+
import '../components/swatch-picker.js';
|
|
29
|
+
import '../components/tile-radio.js';
|
|
30
|
+
import '../components/icon-picker.js';
|
|
31
|
+
import '../components/dialog-frame.js';
|
|
32
|
+
import '../components/modal.js';
|
|
33
|
+
import '../hooks/use-search-param-state.js';
|
|
34
|
+
import '../components/measured-grid.js';
|
|
35
|
+
import '../components/account-settings-labels.js';
|
|
36
|
+
import '../components/floating-panel.js';
|
|
37
|
+
import '../components/bulk-action-bar.js';
|
|
38
|
+
import '../components/list.js';
|
|
39
|
+
import '../components/signed-amount.js';
|
|
40
|
+
import '../components/breadcrumbs.js';
|
|
41
|
+
import '../components/toast.js';
|
|
42
|
+
import '../components/description-list.js';
|
|
43
|
+
import '../components/line-items.js';
|
|
44
|
+
import '../components/progress-bar.js';
|
|
45
|
+
import '../components/error-boundary.js';
|
|
46
|
+
import '../components/authed-image.js';
|
|
47
|
+
import '../hooks/use-authed-src.js';
|
|
48
|
+
import '../components/image-grid.js';
|
|
49
|
+
import '../components/lightbox.js';
|
|
50
|
+
import '../components/write-lock.js';
|
|
51
|
+
import '../components/legal.js';
|
|
52
|
+
import '../components/account-chips.js';
|
|
53
|
+
import '../lib/format.js';
|
|
54
|
+
import '../components/reauth-dialog.js';
|
|
55
|
+
import '../components/server-wake.js';
|
|
56
|
+
import '../lib/server-wake.js';
|
|
57
|
+
import '../components/translation-review-labels.js';
|
|
58
|
+
import '../lib/translation-review.js';
|
|
59
|
+
import '../components/country-select.js';
|
|
60
|
+
import '../components/inline-edit-field.js';
|
|
61
|
+
import '../lib/iban.js';
|
|
62
|
+
import '../lib/phone.js';
|
|
63
|
+
import '../components/sign-chip.js';
|
|
64
|
+
import '../components/column-mapper.js';
|
|
65
|
+
import '../lib/column-mapping.js';
|
|
66
|
+
import '../lib/table-text.js';
|
|
67
|
+
import '../components/field-parts.js';
|
|
@@ -1,253 +1,67 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
* The two parking states are not dead ends: each offers the step that resumes
|
|
69
|
-
* work and the ones that close it, but deliberately **not each other** —
|
|
70
|
-
* "postponed" and "waiting on a deploy" are different answers to different
|
|
71
|
-
* questions, and a row moving between them directly is a re-triage, which starts
|
|
72
|
-
* by picking the work back up.
|
|
73
|
-
*/
|
|
74
|
-
declare function visibleFeedbackStatuses(current: FeedbackStatus): FeedbackStatus[];
|
|
75
|
-
/**
|
|
76
|
-
* Every status, in chain order — what an EXPANDED row offers.
|
|
77
|
-
*
|
|
78
|
-
* {@link visibleFeedbackStatuses} narrows the choice to the steps that make
|
|
79
|
-
* sense from where a row is, which is right for a table cell. Once the row is
|
|
80
|
-
* open in front of you, that same narrowing turns every non-adjacent move into a
|
|
81
|
-
* walk: OPEN to DONE meant three round trips, and WONT_DO could not be left at
|
|
82
|
-
* all except through a rework note.
|
|
83
|
-
*
|
|
84
|
-
* Takes a `current` it does not use, so the two policies read as one pair at the
|
|
85
|
-
* call sites and a future rule ("terminal rows still cannot jump to X") has a
|
|
86
|
-
* place to live.
|
|
87
|
-
*/
|
|
88
|
-
declare function selectableFeedbackStatuses(_current: FeedbackStatus): FeedbackStatus[];
|
|
89
|
-
/**
|
|
90
|
-
* Per-category badge treatment, the counterpart to the status meta above.
|
|
91
|
-
*
|
|
92
|
-
* A category cell that is one grey pill holding the raw enum makes a CRASH —
|
|
93
|
-
* filed automatically, by somebody staring at a broken page right now — read
|
|
94
|
-
* exactly like a QUESTION, and sit unnoticed in the queue. `--danger` plus its own
|
|
95
|
-
* glyph is what makes that impossible; the hand-filed categories stay
|
|
96
|
-
* deliberately quiet so that the loud one means something.
|
|
97
|
-
*
|
|
98
|
-
* Declaration order is triage order, CRASH first.
|
|
99
|
-
*/
|
|
100
|
-
declare const FEEDBACK_CATEGORY_META: Record<FeedbackCategory, {
|
|
101
|
-
icon: LucideIcon;
|
|
102
|
-
badgeBg: string;
|
|
103
|
-
badgeText: string;
|
|
104
|
-
}>;
|
|
105
|
-
/** Triage order, CRASH first — also a category column's sort key and the option
|
|
106
|
-
* order in its filter. Sorting by the raw enum is alphabetical, which parks
|
|
107
|
-
* CRASH between BUG and IDEA. */
|
|
108
|
-
declare const FEEDBACK_CATEGORY_ORDER: FeedbackCategory[];
|
|
109
|
-
/** A category's rank for a column sort. Anything this build has never heard of —
|
|
110
|
-
* an older client against a newer API — sorts LAST rather than to `indexOf`'s
|
|
111
|
-
* −1, which would rank it above CRASH. */
|
|
112
|
-
declare function feedbackCategoryRank(category: FeedbackCategory): number;
|
|
113
|
-
/**
|
|
114
|
-
* The category as a badge.
|
|
115
|
-
*
|
|
116
|
-
* Falls back to OTHER's treatment for a category this build has never heard of,
|
|
117
|
-
* so an older client against a newer API degrades to a readable neutral pill
|
|
118
|
-
* instead of throwing on `meta.icon` — a crash report must not be able to cause
|
|
119
|
-
* one. The *label* is the caller's, and for the same reason it needs the same
|
|
120
|
-
* guard: pass what OTHER is called if you cannot name the value you were given.
|
|
121
|
-
*/
|
|
122
|
-
declare function FeedbackCategoryBadge({ category, label, compact, className, }: {
|
|
123
|
-
category: FeedbackCategory;
|
|
124
|
-
label: ReactNode;
|
|
125
|
-
compact?: boolean;
|
|
126
|
-
className?: string;
|
|
127
|
-
}): react.JSX.Element;
|
|
128
|
-
/** Where a report stands, as a badge — for the places that only *report* the
|
|
129
|
-
* status rather than offering to change it. */
|
|
130
|
-
declare function FeedbackStatusBadge({ status, label, className, }: {
|
|
131
|
-
status: FeedbackStatus;
|
|
132
|
-
label: ReactNode;
|
|
133
|
-
className?: string;
|
|
134
|
-
}): react.JSX.Element;
|
|
135
|
-
/**
|
|
136
|
-
* A row of statuses to switch a report to — either a table column's icon row or
|
|
137
|
-
* an expanded panel's labelled pills.
|
|
138
|
-
*
|
|
139
|
-
* One component for both, because everything except the class strings is the
|
|
140
|
-
* same decision: which one is current, and when the buttons are disabled. Two
|
|
141
|
-
* copies had already drifted — only the icon variant carried `aria-label` and
|
|
142
|
-
* `aria-pressed`, so the pill row was unlabelled for a screen reader.
|
|
143
|
-
*
|
|
144
|
-
* WHICH statuses to offer is the caller's, not this component's:
|
|
145
|
-
* {@link visibleFeedbackStatuses} for a compact column,
|
|
146
|
-
* {@link selectableFeedbackStatuses} for an expanded row. Passing the list keeps
|
|
147
|
-
* that policy readable at the two call sites instead of hiding it behind
|
|
148
|
-
* `variant`.
|
|
149
|
-
*/
|
|
150
|
-
declare function FeedbackStatusTransitions({ status, statuses, canEdit, onPick, variant, label, className, }: {
|
|
151
|
-
status: FeedbackStatus;
|
|
152
|
-
statuses: FeedbackStatus[];
|
|
153
|
-
canEdit: boolean;
|
|
154
|
-
onPick: (status: FeedbackStatus) => void;
|
|
155
|
-
variant: "icon" | "pill";
|
|
156
|
-
/** What each status is called, translated by the app. */
|
|
157
|
-
label: (status: FeedbackStatus) => string;
|
|
158
|
-
className?: string;
|
|
159
|
-
}): react.JSX.Element;
|
|
160
|
-
/**
|
|
161
|
-
* A textarea and its two buttons — for an outcome, for a note sent back with a
|
|
162
|
-
* report, for a body being corrected.
|
|
163
|
-
*
|
|
164
|
-
* One component because all three are the same gesture: a draft that is not
|
|
165
|
-
* committed until it is saved. Ctrl/⌘+Enter submits, which is the same shortcut
|
|
166
|
-
* the compose dialog next door uses, so the habit carries across the feature.
|
|
167
|
-
*
|
|
168
|
-
* ## `initial` seeds the draft; it does not own it (changed 2026-09-22)
|
|
169
|
-
*
|
|
170
|
-
* This used to re-seed from `initial` in an effect, and that effect threw away
|
|
171
|
-
* whatever was in the box — **and the picture attached to it** — every time the
|
|
172
|
-
* prop arrived with a different value. `initial` is normally the saved note, so
|
|
173
|
-
* the list refreshing under the editor, or the owner re-deriving the same string,
|
|
174
|
-
* was enough: a triager halfway through a reply, with a screenshot picked out,
|
|
175
|
-
* lost both and got the saved text back with no way to undo it.
|
|
176
|
-
*
|
|
177
|
-
* A draft belongs to the thing being edited, so switching to a different note is a
|
|
178
|
-
* different editor — say so with a `key`:
|
|
179
|
-
*
|
|
180
|
-
* ```tsx
|
|
181
|
-
* <FeedbackNoteEditor key={note.id} initial={note.body} … />
|
|
182
|
-
* ```
|
|
183
|
-
*
|
|
184
|
-
* Where the id is not in hand at the call site, pass {@link resetKey} instead and
|
|
185
|
-
* the editor re-seeds when THAT changes. Either way the decision is the caller's,
|
|
186
|
-
* which is the point: the editor cannot tell a new subject from a new render.
|
|
187
|
-
*/
|
|
188
|
-
declare function FeedbackNoteEditor({ initial, pending, onSave, onCancel, saveLabel, cancelLabel, placeholder, rows, attachment, resetKey, }: {
|
|
189
|
-
initial: string;
|
|
190
|
-
pending: boolean;
|
|
191
|
-
onSave: (value: string, attachment?: File | null) => void;
|
|
192
|
-
onCancel: () => void;
|
|
193
|
-
saveLabel: ReactNode;
|
|
194
|
-
cancelLabel: ReactNode;
|
|
195
|
-
/** A line above the field saying what to write, not an in-field placeholder:
|
|
196
|
-
* a hint that disappears the moment somebody starts typing is a hint that is
|
|
197
|
-
* gone exactly when it is being followed. */
|
|
198
|
-
placeholder?: ReactNode;
|
|
199
|
-
rows?: number;
|
|
200
|
-
/** Offer a picture with the note (Steering Design feedback #128). Omitted,
|
|
201
|
-
* the editor is exactly the text box it always was — which is what the
|
|
202
|
-
* *outcome* editor beside it wants, since an outcome is the answer rather
|
|
203
|
-
* than the evidence. */
|
|
204
|
-
attachment?: FeedbackNoteAttachment;
|
|
205
|
-
/** Change this to say "the editor is now editing something ELSE", and the draft
|
|
206
|
-
* and its attachment are dropped and re-seeded from `initial`. For call sites
|
|
207
|
-
* that cannot put a `key` on the editor (see the note above). Leave it out and
|
|
208
|
-
* the draft is never thrown away behind the user's back. */
|
|
209
|
-
resetKey?: string | number;
|
|
210
|
-
}): react.JSX.Element;
|
|
211
|
-
/** What {@link FeedbackNoteEditor} needs in order to offer a picture with the
|
|
212
|
-
* note: the same four things {@link FeedbackAttachmentField} takes, so the
|
|
213
|
-
* reply path is held to the app's own limits rather than to the defaults. */
|
|
214
|
-
interface FeedbackNoteAttachment {
|
|
215
|
-
labels: FeedbackAttachmentLabels;
|
|
216
|
-
accept?: string[];
|
|
217
|
-
maxBytes?: number;
|
|
218
|
-
/** `info` (0.23.0) names the refused file and the limit. */
|
|
219
|
-
onError?: (kind: "type" | "size", info: FeedbackAttachmentErrorInfo) => void;
|
|
220
|
-
onCaptureScreenshot?: () => Promise<File | null>;
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* One labelled block of an opened report.
|
|
224
|
-
*
|
|
225
|
-
* The detail panel is a stack of these, and it is a stack rather than a
|
|
226
|
-
* component with fixed fields on purpose: the two apps keep a report's context
|
|
227
|
-
* and its screenshot in genuinely different places, and a shell that insisted on
|
|
228
|
-
* both would force one of them to invent a shape it does not have. What is
|
|
229
|
-
* shared is what a section *looks* like — and that is all that made the two
|
|
230
|
-
* panels read as different products.
|
|
231
|
-
*/
|
|
232
|
-
declare function FeedbackDetailSection({ title, action, children, }: {
|
|
233
|
-
title: ReactNode;
|
|
234
|
-
/** Something on the title's own line — an edit button, a resolved-at date. */
|
|
235
|
-
action?: ReactNode;
|
|
236
|
-
children: ReactNode;
|
|
237
|
-
}): react.JSX.Element;
|
|
238
|
-
/** The stack a detail panel is. Here so the spacing between sections is decided
|
|
239
|
-
* once rather than by whichever app was written second. */
|
|
240
|
-
declare function FeedbackDetail({ children }: {
|
|
241
|
-
children: ReactNode;
|
|
242
|
-
}): react.JSX.Element;
|
|
243
|
-
/** Prose inside a section — a body, an outcome, a note.
|
|
244
|
-
*
|
|
245
|
-
* `whitespace-pre-wrap` is the whole component: a report is written in
|
|
246
|
-
* paragraphs, and a note appended to it later is separated by blank lines that
|
|
247
|
-
* carry the entire "this arrived after the answer" reading. */
|
|
248
|
-
declare function FeedbackProse({ children, empty }: {
|
|
249
|
-
children?: string;
|
|
250
|
-
empty?: ReactNode;
|
|
251
|
-
}): react.JSX.Element;
|
|
252
|
-
|
|
253
|
-
export { FEEDBACK_CATEGORY_META, FEEDBACK_CATEGORY_ORDER, FEEDBACK_STATUS_META, FEEDBACK_STATUS_ORDER, type FeedbackCategory, FeedbackCategoryBadge, FeedbackDetail, FeedbackDetailSection, type FeedbackNoteAttachment, FeedbackNoteEditor, FeedbackProse, type FeedbackStatus, FeedbackStatusBadge, FeedbackStatusTransitions, feedbackCategoryRank, nextFeedbackStatus, selectableFeedbackStatuses, visibleFeedbackStatuses };
|
|
1
|
+
import 'react';
|
|
2
|
+
import 'lucide-react';
|
|
3
|
+
export { av as FEEDBACK_CATEGORY_META, aw as FEEDBACK_CATEGORY_ORDER, ax as FEEDBACK_STATUS_META, ay as FEEDBACK_STATUS_ORDER, aS as FeedbackCategory, aT as FeedbackCategoryBadge, a$ as FeedbackDetail, b0 as FeedbackDetailSection, b8 as FeedbackNoteAttachment, b9 as FeedbackNoteEditor, ba as FeedbackProse, bb as FeedbackStatus, bc as FeedbackStatusBadge, bd as FeedbackStatusTransitions, cH as feedbackCategoryRank, cL as nextFeedbackStatus, cO as selectableFeedbackStatuses, c_ as visibleFeedbackStatuses } from '../feedback-DOwPu-Il.js';
|
|
4
|
+
import '../components/tooltip.js';
|
|
5
|
+
import '../hooks/use-anchored-rect.js';
|
|
6
|
+
import '../lib/clipping.js';
|
|
7
|
+
import '../data-table-labels-B7OdnM0S.js';
|
|
8
|
+
import '../components/data-table-sort.js';
|
|
9
|
+
import '../components/swipeable-row.js';
|
|
10
|
+
import '../components/mini-calendar.js';
|
|
11
|
+
import '../components/calendar-heatmap.js';
|
|
12
|
+
import '../components/popover.js';
|
|
13
|
+
import '../components/chip.js';
|
|
14
|
+
import '../components/field-sync.js';
|
|
15
|
+
import '../wizard/types.js';
|
|
16
|
+
import '../tour/tour.js';
|
|
17
|
+
import '../search/command-palette.js';
|
|
18
|
+
import '../search/global-search.js';
|
|
19
|
+
import '../search/search-index.js';
|
|
20
|
+
import '../components/month-picker.js';
|
|
21
|
+
import '../components/page-contents.js';
|
|
22
|
+
import '../components/series-chart-labels.js';
|
|
23
|
+
import '../components/pie-chart-labels.js';
|
|
24
|
+
import '../components/sparkline.js';
|
|
25
|
+
import '../components/stat-tile.js';
|
|
26
|
+
import '../components/signature-pad.js';
|
|
27
|
+
import '../components/password-strength.js';
|
|
28
|
+
import '../components/swatch-picker.js';
|
|
29
|
+
import '../components/tile-radio.js';
|
|
30
|
+
import '../components/icon-picker.js';
|
|
31
|
+
import '../components/dialog-frame.js';
|
|
32
|
+
import '../components/modal.js';
|
|
33
|
+
import '../hooks/use-search-param-state.js';
|
|
34
|
+
import '../components/measured-grid.js';
|
|
35
|
+
import '../components/account-settings-labels.js';
|
|
36
|
+
import '../components/floating-panel.js';
|
|
37
|
+
import '../components/bulk-action-bar.js';
|
|
38
|
+
import '../components/list.js';
|
|
39
|
+
import '../components/signed-amount.js';
|
|
40
|
+
import '../components/breadcrumbs.js';
|
|
41
|
+
import '../components/toast.js';
|
|
42
|
+
import '../components/description-list.js';
|
|
43
|
+
import '../components/line-items.js';
|
|
44
|
+
import '../components/progress-bar.js';
|
|
45
|
+
import '../components/error-boundary.js';
|
|
46
|
+
import '../components/authed-image.js';
|
|
47
|
+
import '../hooks/use-authed-src.js';
|
|
48
|
+
import '../components/image-grid.js';
|
|
49
|
+
import '../components/lightbox.js';
|
|
50
|
+
import '../components/write-lock.js';
|
|
51
|
+
import '../components/legal.js';
|
|
52
|
+
import '../components/account-chips.js';
|
|
53
|
+
import '../lib/format.js';
|
|
54
|
+
import '../components/reauth-dialog.js';
|
|
55
|
+
import '../components/server-wake.js';
|
|
56
|
+
import '../lib/server-wake.js';
|
|
57
|
+
import '../components/translation-review-labels.js';
|
|
58
|
+
import '../lib/translation-review.js';
|
|
59
|
+
import '../components/country-select.js';
|
|
60
|
+
import '../components/inline-edit-field.js';
|
|
61
|
+
import '../lib/iban.js';
|
|
62
|
+
import '../lib/phone.js';
|
|
63
|
+
import '../components/sign-chip.js';
|
|
64
|
+
import '../components/column-mapper.js';
|
|
65
|
+
import '../lib/column-mapping.js';
|
|
66
|
+
import '../lib/table-text.js';
|
|
67
|
+
import '../components/field-parts.js';
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import 'react';
|
|
2
|
-
export { z as ChatComposer, D as ChatComposerHandle, E as ChatComposerLabels, F as ChatComposerProps,
|
|
3
|
-
import '../feedback-attachment-fGAzZPf0.js';
|
|
4
|
-
import './feedback-inbox.js';
|
|
2
|
+
export { z as ChatComposer, D as ChatComposerHandle, E as ChatComposerLabels, F as ChatComposerProps, G as ChatComposerSlotContext, a6 as DEFAULT_FEEDBACK_COMPOSER_LABELS, a8 as DEFAULT_FEEDBACK_THREAD_LABELS, aV as FeedbackComposer, aW as FeedbackComposerAttachment, aX as FeedbackComposerHandle, aY as FeedbackComposerLabels, aZ as FeedbackComposerProps, a_ as FeedbackComposerSlotContext, bf as FeedbackThread, bg as FeedbackThreadAttachment, bh as FeedbackThreadEvent, bi as FeedbackThreadItem, bj as FeedbackThreadLabels, bk as FeedbackThreadMessage, bl as FeedbackThreadProps } from '../feedback-DOwPu-Il.js';
|
|
5
3
|
import '../components/tooltip.js';
|
|
6
4
|
import '../hooks/use-anchored-rect.js';
|
|
7
5
|
import '../lib/clipping.js';
|
|
@@ -310,6 +310,10 @@ function FeedbackComposer({
|
|
|
310
310
|
});
|
|
311
311
|
};
|
|
312
312
|
const config = attachment === true ? {} : attachment || null;
|
|
313
|
+
const slot = typeof attachmentSlot === "function" ? (
|
|
314
|
+
// eslint-disable-next-line react-hooks/refs -- handed on for an effect, not read here
|
|
315
|
+
attachmentSlot({ root, pending })
|
|
316
|
+
) : attachmentSlot;
|
|
313
317
|
return /* @__PURE__ */ jsxs("div", { ...rootAttributes, ref: root, className: cn("space-y-2", className), children: [
|
|
314
318
|
/* @__PURE__ */ jsx(
|
|
315
319
|
Textarea,
|
|
@@ -337,7 +341,7 @@ function FeedbackComposer({
|
|
|
337
341
|
}
|
|
338
342
|
),
|
|
339
343
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-end justify-between gap-2", children: [
|
|
340
|
-
config ||
|
|
344
|
+
config || slot != null ? /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-wrap items-end gap-2", children: [
|
|
341
345
|
config && /* @__PURE__ */ jsx(
|
|
342
346
|
FeedbackAttachmentField,
|
|
343
347
|
{
|
|
@@ -348,10 +352,12 @@ function FeedbackComposer({
|
|
|
348
352
|
maxBytes: config.maxBytes,
|
|
349
353
|
onError: config.onError,
|
|
350
354
|
onCaptureScreenshot: config.onCaptureScreenshot,
|
|
355
|
+
buttonVariant: config.buttonVariant,
|
|
356
|
+
buttonSize: config.buttonSize,
|
|
351
357
|
pasteFrom: root
|
|
352
358
|
}
|
|
353
359
|
),
|
|
354
|
-
|
|
360
|
+
slot
|
|
355
361
|
] }) : /* @__PURE__ */ jsx("span", {}),
|
|
356
362
|
/* @__PURE__ */ jsxs("div", { className: "ms-auto flex items-center gap-2", children: [
|
|
357
363
|
/* @__PURE__ */ jsx(
|