panelui-native 0.87.0 → 0.88.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 (52) hide show
  1. package/lib/module/components/animated-badge/index.js +451 -0
  2. package/lib/module/components/animated-badge/index.js.map +1 -0
  3. package/lib/module/components/bottom-sheet/index.js +17 -6
  4. package/lib/module/components/bottom-sheet/index.js.map +1 -1
  5. package/lib/module/components/bubble-chart/index.js +557 -41
  6. package/lib/module/components/bubble-chart/index.js.map +1 -1
  7. package/lib/module/components/feedback-dialog/index.js +474 -0
  8. package/lib/module/components/feedback-dialog/index.js.map +1 -0
  9. package/lib/module/components/scroll-blur/index.js +363 -0
  10. package/lib/module/components/scroll-blur/index.js.map +1 -0
  11. package/lib/module/components/scroll-canvas/index.js +2 -0
  12. package/lib/module/components/scroll-canvas/index.js.map +1 -1
  13. package/lib/module/components/scroll-text/index.js +3 -0
  14. package/lib/module/components/scroll-text/index.js.map +1 -1
  15. package/lib/module/components/search-bar/index.js +390 -45
  16. package/lib/module/components/search-bar/index.js.map +1 -1
  17. package/lib/module/hooks/use-keyboard-avoidance.js +21 -1
  18. package/lib/module/hooks/use-keyboard-avoidance.js.map +1 -1
  19. package/lib/module/hooks/use-reveal-progress.js +21 -1
  20. package/lib/module/hooks/use-reveal-progress.js.map +1 -1
  21. package/lib/module/index.js +3 -0
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/typescript/src/components/animated-badge/index.d.ts +224 -0
  24. package/lib/typescript/src/components/animated-badge/index.d.ts.map +1 -0
  25. package/lib/typescript/src/components/bottom-sheet/index.d.ts +1 -15
  26. package/lib/typescript/src/components/bottom-sheet/index.d.ts.map +1 -1
  27. package/lib/typescript/src/components/bubble-chart/index.d.ts +150 -7
  28. package/lib/typescript/src/components/bubble-chart/index.d.ts.map +1 -1
  29. package/lib/typescript/src/components/feedback-dialog/index.d.ts +156 -0
  30. package/lib/typescript/src/components/feedback-dialog/index.d.ts.map +1 -0
  31. package/lib/typescript/src/components/scroll-blur/index.d.ts +113 -0
  32. package/lib/typescript/src/components/scroll-blur/index.d.ts.map +1 -0
  33. package/lib/typescript/src/components/scroll-canvas/index.d.ts.map +1 -1
  34. package/lib/typescript/src/components/search-bar/index.d.ts +142 -7
  35. package/lib/typescript/src/components/search-bar/index.d.ts.map +1 -1
  36. package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts.map +1 -1
  37. package/lib/typescript/src/hooks/use-reveal-progress.d.ts +6 -27
  38. package/lib/typescript/src/hooks/use-reveal-progress.d.ts.map +1 -1
  39. package/lib/typescript/src/index.d.ts +5 -2
  40. package/lib/typescript/src/index.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/src/components/animated-badge/index.tsx +513 -0
  43. package/src/components/bottom-sheet/index.tsx +23 -8
  44. package/src/components/bubble-chart/index.tsx +664 -46
  45. package/src/components/feedback-dialog/index.tsx +557 -0
  46. package/src/components/scroll-blur/index.tsx +466 -0
  47. package/src/components/scroll-canvas/index.tsx +2 -1
  48. package/src/components/scroll-text/index.tsx +3 -3
  49. package/src/components/search-bar/index.tsx +471 -41
  50. package/src/hooks/use-keyboard-avoidance.ts +24 -1
  51. package/src/hooks/use-reveal-progress.ts +30 -1
  52. package/src/index.ts +27 -0
@@ -0,0 +1,474 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * FeedbackDialog — a dialog whose body is something to write in, and whose
5
+ * actions sit in a band around it.
6
+ *
7
+ * ```tsx
8
+ * <FeedbackDialog open={open} onOpenChange={setOpen}>
9
+ * <FeedbackDialog.Content>
10
+ * <FeedbackDialog.Panel>
11
+ * <FeedbackDialog.Title>Help us improve, Gabe!</FeedbackDialog.Title>
12
+ * <FeedbackDialog.Close />
13
+ * <FeedbackDialog.Field value={text} onChangeText={setText} />
14
+ * </FeedbackDialog.Panel>
15
+ * <FeedbackDialog.Footer>
16
+ * <FeedbackDialog.Cancel />
17
+ * <FeedbackDialog.Submit onPress={send} />
18
+ * </FeedbackDialog.Footer>
19
+ * </FeedbackDialog.Content>
20
+ * </FeedbackDialog>
21
+ * ```
22
+ *
23
+ * ## Why the panel is a panel and not the dialog
24
+ *
25
+ * A dialog that asks for a sentence has two jobs on screen at once: hold what
26
+ * is being written, and offer the two things to do with it. `Dialog` puts both
27
+ * on one surface, which is right when the body is a line of prose — nothing
28
+ * about it says "this is where you type".
29
+ *
30
+ * Here the writing surface is a well set into the dialog, and the buttons sit
31
+ * in the band around it. The recess is the whole affordance: it says the field
32
+ * is the page and everything else is the frame around it, before a word has
33
+ * been read. It is also why the field has no border of its own — an outline
34
+ * inside a well is two edges saying the same thing.
35
+ *
36
+ * ## The actions are equal, and one of them is not
37
+ *
38
+ * Cancel and Submit take the same width, because they are the same size of
39
+ * decision — this is a sentence somebody wrote, not a deletion. What separates
40
+ * them is weight: Submit is filled in the foreground colour and Cancel is a
41
+ * tint of it, so the difference is legible at a glance without either being
42
+ * hidden.
43
+ *
44
+ * ## Nothing is submitted empty
45
+ *
46
+ * `Submit` disables itself while the field is empty. A dialog that accepts an
47
+ * empty answer produces empty feedback, and the person who sent it believes
48
+ * they said something.
49
+ */
50
+ import { createContext, forwardRef, isValidElement, useCallback, useContext, useMemo, useState } from 'react';
51
+ import { Pressable, TextInput, View } from 'react-native';
52
+ import Animated, { FadeIn, FadeOut, ZoomIn } from 'react-native-reanimated';
53
+ import { tv } from 'tailwind-variants';
54
+ import { XIcon } from "../../icons/index.js";
55
+ import { AnimatedPressable } from "../../primitives/animated-pressable.js";
56
+ import { KeyboardAvoider } from "../../primitives/keyboard-avoider.js";
57
+ import { ModalPortal } from "../../primitives/portal.js";
58
+ import { Scrim } from "../../primitives/scrim.js";
59
+ import { Text, textChildren } from "../../primitives/text.js";
60
+ import { useBackHandler } from "../../hooks/use-back-handler.js";
61
+ import { cn } from "../../utils/cn.js";
62
+
63
+ /**
64
+ * The shell's padding, in points, and the corner it draws.
65
+ *
66
+ * The panel's corner is the shell's less that padding, which is what keeps the
67
+ * two curves concentric — a well whose radius does not account for the band
68
+ * around it leaves a crescent of shell at each corner, thicker there than it is
69
+ * along the sides.
70
+ */
71
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
72
+ const SHELL_PADDING = 8;
73
+ const SHELL_RADIUS = 38;
74
+ const PANEL_RADIUS = SHELL_RADIUS - SHELL_PADDING;
75
+
76
+ /**
77
+ * How far the action row is held in from the shell's own edge, beyond the
78
+ * padding the panel gets.
79
+ *
80
+ * The buttons are narrower than the well above them on purpose: a row that ran
81
+ * the full width would read as a third edge of the dialog rather than as two
82
+ * things to press.
83
+ */
84
+ const FOOTER_INSET = 26;
85
+
86
+ /** Room to write in before the field starts growing. */
87
+ const FIELD_MIN_HEIGHT = 200;
88
+
89
+ /**
90
+ * The ✕'s drawn size, and the slop that takes its touch box to 48.
91
+ *
92
+ * Made up with slop rather than with size, because the glyph is set against
93
+ * the title's cap height and a circle large enough to press comfortably would
94
+ * be taller than the line it sits on.
95
+ */
96
+ const CLOSE_SIZE = 22;
97
+ const CLOSE_HIT_SLOP = 13;
98
+ const feedbackDialogVariants = tv({
99
+ slots: {
100
+ /*
101
+ * The shell is `bg-popover` with an `inset` band laid over it rather than
102
+ * a colour of its own. `--color-inset` is a translucent black in every
103
+ * theme, so the shell always comes out darker than the panel it holds —
104
+ * which is the one thing this design cannot get from the surface ladder,
105
+ * because that ladder runs darker in a light theme and lighter in a dark
106
+ * one, and the recess has to read the same way in both.
107
+ */
108
+ shell: 'w-full max-w-sm overflow-hidden bg-popover shadow-xl',
109
+ recess: 'absolute inset-0 bg-inset',
110
+ panel: 'overflow-hidden bg-popover',
111
+ title: 'pe-9 text-[22px] font-semibold leading-[28px] text-popover-foreground',
112
+ close: 'absolute items-center justify-center rounded-full bg-foreground/10',
113
+ field: 'p-0 text-[17px] leading-[24px] text-muted-foreground',
114
+ footer: 'flex-row items-center gap-3.5',
115
+ action: 'h-11 flex-1 items-center justify-center rounded-full',
116
+ actionLabel: 'text-[16px]'
117
+ },
118
+ variants: {
119
+ tone: {
120
+ /** The one that discards. A tint of the foreground, not a fill. */
121
+ cancel: {
122
+ action: 'bg-foreground/10',
123
+ actionLabel: 'font-medium text-muted-foreground'
124
+ },
125
+ /** The one that sends. Filled, and the only filled thing on the dialog. */
126
+ submit: {
127
+ action: 'bg-primary',
128
+ actionLabel: 'font-semibold text-primary-foreground'
129
+ }
130
+ },
131
+ disabled: {
132
+ true: {
133
+ action: 'opacity-[0.45]'
134
+ }
135
+ }
136
+ }
137
+ });
138
+ const FeedbackDialogContext = /*#__PURE__*/createContext(null);
139
+ function useFeedbackDialog(component) {
140
+ const context = useContext(FeedbackDialogContext);
141
+ if (!context) {
142
+ throw new Error(`${component} must be used within a <FeedbackDialog>`);
143
+ }
144
+ return context;
145
+ }
146
+ function FeedbackDialogRoot({
147
+ children,
148
+ open,
149
+ onOpenChange,
150
+ defaultOpen = false,
151
+ value,
152
+ defaultValue = '',
153
+ onValueChange
154
+ }) {
155
+ const [internalOpen, setInternalOpen] = useState(defaultOpen);
156
+ const openControlled = open !== undefined;
157
+ const resolvedOpen = openControlled ? open : internalOpen;
158
+ const [internalValue, setInternalValue] = useState(defaultValue);
159
+ const valueControlled = value !== undefined;
160
+ const resolvedValue = valueControlled ? value : internalValue;
161
+ const setOpen = useCallback(next => {
162
+ if (!openControlled) setInternalOpen(next);
163
+ onOpenChange?.(next);
164
+ }, [openControlled, onOpenChange]);
165
+ const setValue = useCallback(next => {
166
+ if (!valueControlled) setInternalValue(next);
167
+ onValueChange?.(next);
168
+ }, [valueControlled, onValueChange]);
169
+ const context = useMemo(() => ({
170
+ open: resolvedOpen,
171
+ setOpen,
172
+ value: resolvedValue,
173
+ setValue
174
+ }), [resolvedOpen, setOpen, resolvedValue, setValue]);
175
+ return /*#__PURE__*/_jsx(FeedbackDialogContext.Provider, {
176
+ value: context,
177
+ children: children
178
+ });
179
+ }
180
+ FeedbackDialogRoot.displayName = 'FeedbackDialog';
181
+ /** Wraps its child and opens the dialog on press. */
182
+ function FeedbackDialogTrigger({
183
+ children
184
+ }) {
185
+ const {
186
+ setOpen
187
+ } = useFeedbackDialog('FeedbackDialog.Trigger');
188
+ if (! /*#__PURE__*/isValidElement(children)) return children;
189
+ return /*#__PURE__*/_jsx(Pressable, {
190
+ onPress: () => setOpen(true),
191
+ children: /*#__PURE__*/_jsx(View, {
192
+ pointerEvents: "none",
193
+ children: children
194
+ })
195
+ });
196
+ }
197
+ FeedbackDialogTrigger.displayName = 'FeedbackDialog.Trigger';
198
+ /** The shell: the recessed band, and everything laid in it. */
199
+ function FeedbackDialogContent({
200
+ className,
201
+ dismissible = true,
202
+ blur = false,
203
+ children,
204
+ ...props
205
+ }) {
206
+ const context = useFeedbackDialog('FeedbackDialog.Content');
207
+ const {
208
+ open,
209
+ setOpen
210
+ } = context;
211
+ const slots = feedbackDialogVariants();
212
+ useBackHandler(open && dismissible, () => setOpen(false));
213
+ if (!open) return null;
214
+ return /*#__PURE__*/_jsx(ModalPortal, {
215
+ children: /*#__PURE__*/_jsx(FeedbackDialogContext.Provider, {
216
+ value: context,
217
+ children: /*#__PURE__*/_jsxs(Animated.View, {
218
+ entering: FadeIn.duration(150),
219
+ exiting: FadeOut.duration(150),
220
+ className: "absolute inset-0 items-center justify-center p-6",
221
+ children: [/*#__PURE__*/_jsx(Scrim, {
222
+ blur: blur
223
+ }), /*#__PURE__*/_jsx(Pressable, {
224
+ accessibilityLabel: "Close dialog",
225
+ className: "absolute inset-0",
226
+ onPress: dismissible ? () => setOpen(false) : undefined
227
+ }), /*#__PURE__*/_jsx(KeyboardAvoider, {
228
+ mode: "lift",
229
+ offset: 16,
230
+ className: "w-full items-center",
231
+ children: /*#__PURE__*/_jsxs(Animated.View, {
232
+ entering: ZoomIn.springify().damping(18).stiffness(250).mass(0.6),
233
+ exiting: FadeOut.duration(120),
234
+ accessibilityViewIsModal: true,
235
+ className: slots.shell({
236
+ className
237
+ }),
238
+ style: {
239
+ borderRadius: SHELL_RADIUS,
240
+ padding: SHELL_PADDING
241
+ },
242
+ ...props,
243
+ children: [/*#__PURE__*/_jsx(View, {
244
+ pointerEvents: "none",
245
+ className: slots.recess()
246
+ }), textChildren(children)]
247
+ })
248
+ })]
249
+ })
250
+ })
251
+ });
252
+ }
253
+ FeedbackDialogContent.displayName = 'FeedbackDialog.Content';
254
+ /** The well set into the shell: the title, the ✕ and the field. */
255
+ const FeedbackDialogPanel = /*#__PURE__*/forwardRef(({
256
+ className,
257
+ children,
258
+ ...props
259
+ }, ref) => {
260
+ const slots = feedbackDialogVariants();
261
+ return /*#__PURE__*/_jsx(View, {
262
+ ref: ref,
263
+ className: cn(slots.panel(), 'gap-4 p-5', className),
264
+ style: {
265
+ borderRadius: PANEL_RADIUS
266
+ },
267
+ ...props,
268
+ children: textChildren(children)
269
+ });
270
+ });
271
+ FeedbackDialogPanel.displayName = 'FeedbackDialog.Panel';
272
+ const FeedbackDialogTitle = /*#__PURE__*/forwardRef(({
273
+ className,
274
+ ...props
275
+ }, ref) => {
276
+ const slots = feedbackDialogVariants();
277
+ return /*#__PURE__*/_jsx(Text, {
278
+ ref: ref,
279
+ className: slots.title({
280
+ className
281
+ }),
282
+ ...props
283
+ });
284
+ });
285
+ FeedbackDialogTitle.displayName = 'FeedbackDialog.Title';
286
+ /** The ✕ in the panel's corner. */
287
+ function FeedbackDialogClose({
288
+ className,
289
+ label = 'Close',
290
+ onPress,
291
+ ...props
292
+ }) {
293
+ const {
294
+ setOpen
295
+ } = useFeedbackDialog('FeedbackDialog.Close');
296
+ const slots = feedbackDialogVariants();
297
+ return /*#__PURE__*/_jsx(AnimatedPressable, {
298
+ accessibilityRole: "button",
299
+ accessibilityLabel: label,
300
+ hitSlop: CLOSE_HIT_SLOP,
301
+ pressScale: 1,
302
+ pressOpacity: 0.55,
303
+ onPress: onPress ?? (() => setOpen(false)),
304
+ className: slots.close({
305
+ className
306
+ }),
307
+ style: {
308
+ top: 20,
309
+ right: 20,
310
+ width: CLOSE_SIZE,
311
+ height: CLOSE_SIZE
312
+ },
313
+ ...props,
314
+ children: /*#__PURE__*/_jsx(XIcon, {
315
+ size: 12
316
+ })
317
+ });
318
+ }
319
+ FeedbackDialogClose.displayName = 'FeedbackDialog.Close';
320
+ /**
321
+ * What is being written.
322
+ *
323
+ * No border and no background of its own: it is already inside a well, and an
324
+ * outline drawn inside one is two edges making the same point.
325
+ *
326
+ * The caret is deliberately left to the platform. Every system draws its own
327
+ * accent there, and a field that overrides it is a field that looks like it
328
+ * belongs to a different phone.
329
+ */
330
+ const FeedbackDialogField = /*#__PURE__*/forwardRef(({
331
+ className,
332
+ value,
333
+ onChangeText,
334
+ minHeight = FIELD_MIN_HEIGHT,
335
+ placeholder = 'Tell us what you think',
336
+ style,
337
+ ...props
338
+ }, ref) => {
339
+ const dialog = useFeedbackDialog('FeedbackDialog.Field');
340
+ const slots = feedbackDialogVariants();
341
+ const text = value ?? dialog.value;
342
+ return /*#__PURE__*/_jsx(TextInput, {
343
+ ref: ref,
344
+ multiline: true,
345
+ textAlignVertical: "top",
346
+ placeholder: placeholder,
347
+ value: text,
348
+ onChangeText: next => {
349
+ dialog.setValue(next);
350
+ onChangeText?.(next);
351
+ },
352
+ className: slots.field({
353
+ className
354
+ }),
355
+ style: [{
356
+ minHeight
357
+ }, style],
358
+ ...props
359
+ });
360
+ });
361
+ FeedbackDialogField.displayName = 'FeedbackDialog.Field';
362
+ /** The action row, in the band under the panel. */
363
+ const FeedbackDialogFooter = /*#__PURE__*/forwardRef(({
364
+ className,
365
+ children,
366
+ style,
367
+ ...props
368
+ }, ref) => {
369
+ const slots = feedbackDialogVariants();
370
+ return /*#__PURE__*/_jsx(View, {
371
+ ref: ref,
372
+ className: slots.footer({
373
+ className
374
+ }),
375
+ style: [{
376
+ marginTop: 16,
377
+ marginHorizontal: FOOTER_INSET - SHELL_PADDING
378
+ }, style],
379
+ ...props,
380
+ children: children
381
+ });
382
+ });
383
+ FeedbackDialogFooter.displayName = 'FeedbackDialog.Footer';
384
+ /** Shared body for the two buttons, so they can only differ in the ways they should. */
385
+ function Action({
386
+ tone,
387
+ className,
388
+ labelClassName,
389
+ disabled,
390
+ onPress,
391
+ children,
392
+ ...props
393
+ }) {
394
+ const slots = feedbackDialogVariants({
395
+ tone,
396
+ disabled: !!disabled
397
+ });
398
+ return /*#__PURE__*/_jsx(AnimatedPressable, {
399
+ accessibilityRole: "button",
400
+ accessibilityState: {
401
+ disabled: !!disabled
402
+ },
403
+ disabled: disabled,
404
+ pressScale: 0.97,
405
+ pressOpacity: 0.9,
406
+ onPress: onPress,
407
+ className: slots.action({
408
+ className
409
+ }),
410
+ ...props,
411
+ children: textChildren(children, label => /*#__PURE__*/_jsx(Text, {
412
+ className: slots.actionLabel({
413
+ className: labelClassName
414
+ }),
415
+ children: label
416
+ }))
417
+ });
418
+ }
419
+
420
+ /** Discards and closes. Give it `onPress` to do something else first. */
421
+ function FeedbackDialogCancel({
422
+ children = 'Cancel',
423
+ onPress,
424
+ ...props
425
+ }) {
426
+ const {
427
+ setOpen
428
+ } = useFeedbackDialog('FeedbackDialog.Cancel');
429
+ return /*#__PURE__*/_jsx(Action, {
430
+ tone: "cancel",
431
+ onPress: onPress ?? (() => setOpen(false)),
432
+ ...props,
433
+ children: children
434
+ });
435
+ }
436
+ FeedbackDialogCancel.displayName = 'FeedbackDialog.Cancel';
437
+ /** Sends. Inert while the field is empty. */
438
+ function FeedbackDialogSubmit({
439
+ children = 'Submit',
440
+ disabled,
441
+ onPress,
442
+ onSubmit,
443
+ ...props
444
+ }) {
445
+ const {
446
+ value
447
+ } = useFeedbackDialog('FeedbackDialog.Submit');
448
+ // Empty feedback is worse than none: it is sent by somebody who believes
449
+ // they said something.
450
+ const empty = value.trim().length === 0;
451
+ return /*#__PURE__*/_jsx(Action, {
452
+ tone: "submit",
453
+ disabled: disabled ?? empty,
454
+ onPress: () => {
455
+ onPress?.();
456
+ onSubmit?.(value);
457
+ },
458
+ ...props,
459
+ children: children
460
+ });
461
+ }
462
+ FeedbackDialogSubmit.displayName = 'FeedbackDialog.Submit';
463
+ export const FeedbackDialog = Object.assign(FeedbackDialogRoot, {
464
+ Trigger: FeedbackDialogTrigger,
465
+ Content: FeedbackDialogContent,
466
+ Panel: FeedbackDialogPanel,
467
+ Title: FeedbackDialogTitle,
468
+ Close: FeedbackDialogClose,
469
+ Field: FeedbackDialogField,
470
+ Footer: FeedbackDialogFooter,
471
+ Cancel: FeedbackDialogCancel,
472
+ Submit: FeedbackDialogSubmit
473
+ });
474
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","forwardRef","isValidElement","useCallback","useContext","useMemo","useState","Pressable","TextInput","View","Animated","FadeIn","FadeOut","ZoomIn","tv","XIcon","AnimatedPressable","KeyboardAvoider","ModalPortal","Scrim","Text","textChildren","useBackHandler","cn","jsx","_jsx","jsxs","_jsxs","SHELL_PADDING","SHELL_RADIUS","PANEL_RADIUS","FOOTER_INSET","FIELD_MIN_HEIGHT","CLOSE_SIZE","CLOSE_HIT_SLOP","feedbackDialogVariants","slots","shell","recess","panel","title","close","field","footer","action","actionLabel","variants","tone","cancel","submit","disabled","true","FeedbackDialogContext","useFeedbackDialog","component","context","Error","FeedbackDialogRoot","children","open","onOpenChange","defaultOpen","value","defaultValue","onValueChange","internalOpen","setInternalOpen","openControlled","undefined","resolvedOpen","internalValue","setInternalValue","valueControlled","resolvedValue","setOpen","next","setValue","Provider","displayName","FeedbackDialogTrigger","onPress","pointerEvents","FeedbackDialogContent","className","dismissible","blur","props","entering","duration","exiting","accessibilityLabel","mode","offset","springify","damping","stiffness","mass","accessibilityViewIsModal","style","borderRadius","padding","FeedbackDialogPanel","ref","FeedbackDialogTitle","FeedbackDialogClose","label","accessibilityRole","hitSlop","pressScale","pressOpacity","top","right","width","height","size","FeedbackDialogField","onChangeText","minHeight","placeholder","dialog","text","multiline","textAlignVertical","FeedbackDialogFooter","marginTop","marginHorizontal","Action","labelClassName","accessibilityState","FeedbackDialogCancel","FeedbackDialogSubmit","onSubmit","empty","trim","length","FeedbackDialog","Object","assign","Trigger","Content","Panel","Title","Close","Field","Footer","Cancel","Submit"],"sourceRoot":"../../../../src","sources":["components/feedback-dialog/index.tsx"],"mappings":"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","ignoreList":[]}