panelui-native 0.86.1 → 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 (63) hide show
  1. package/README.md +4 -2
  2. package/lib/module/components/animated-badge/index.js +451 -0
  3. package/lib/module/components/animated-badge/index.js.map +1 -0
  4. package/lib/module/components/bottom-sheet/index.js +17 -6
  5. package/lib/module/components/bottom-sheet/index.js.map +1 -1
  6. package/lib/module/components/bubble-chart/index.js +1782 -0
  7. package/lib/module/components/bubble-chart/index.js.map +1 -0
  8. package/lib/module/components/feedback-dialog/index.js +474 -0
  9. package/lib/module/components/feedback-dialog/index.js.map +1 -0
  10. package/lib/module/components/pyramid-chart/index.js +1143 -0
  11. package/lib/module/components/pyramid-chart/index.js.map +1 -0
  12. package/lib/module/components/scroll-blur/index.js +363 -0
  13. package/lib/module/components/scroll-blur/index.js.map +1 -0
  14. package/lib/module/components/scroll-canvas/index.js +2 -0
  15. package/lib/module/components/scroll-canvas/index.js.map +1 -1
  16. package/lib/module/components/scroll-text/index.js +3 -0
  17. package/lib/module/components/scroll-text/index.js.map +1 -1
  18. package/lib/module/components/search-bar/index.js +753 -25
  19. package/lib/module/components/search-bar/index.js.map +1 -1
  20. package/lib/module/hooks/use-keyboard-avoidance.js +21 -1
  21. package/lib/module/hooks/use-keyboard-avoidance.js.map +1 -1
  22. package/lib/module/hooks/use-reveal-progress.js +21 -1
  23. package/lib/module/hooks/use-reveal-progress.js.map +1 -1
  24. package/lib/module/index.js +5 -0
  25. package/lib/module/index.js.map +1 -1
  26. package/lib/module/utils/chart.js +24 -0
  27. package/lib/module/utils/chart.js.map +1 -1
  28. package/lib/typescript/src/components/animated-badge/index.d.ts +224 -0
  29. package/lib/typescript/src/components/animated-badge/index.d.ts.map +1 -0
  30. package/lib/typescript/src/components/bottom-sheet/index.d.ts +1 -15
  31. package/lib/typescript/src/components/bottom-sheet/index.d.ts.map +1 -1
  32. package/lib/typescript/src/components/bubble-chart/index.d.ts +481 -0
  33. package/lib/typescript/src/components/bubble-chart/index.d.ts.map +1 -0
  34. package/lib/typescript/src/components/feedback-dialog/index.d.ts +156 -0
  35. package/lib/typescript/src/components/feedback-dialog/index.d.ts.map +1 -0
  36. package/lib/typescript/src/components/pyramid-chart/index.d.ts +328 -0
  37. package/lib/typescript/src/components/pyramid-chart/index.d.ts.map +1 -0
  38. package/lib/typescript/src/components/scroll-blur/index.d.ts +113 -0
  39. package/lib/typescript/src/components/scroll-blur/index.d.ts.map +1 -0
  40. package/lib/typescript/src/components/scroll-canvas/index.d.ts.map +1 -1
  41. package/lib/typescript/src/components/search-bar/index.d.ts +350 -6
  42. package/lib/typescript/src/components/search-bar/index.d.ts.map +1 -1
  43. package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts.map +1 -1
  44. package/lib/typescript/src/hooks/use-reveal-progress.d.ts +6 -27
  45. package/lib/typescript/src/hooks/use-reveal-progress.d.ts.map +1 -1
  46. package/lib/typescript/src/index.d.ts +6 -1
  47. package/lib/typescript/src/index.d.ts.map +1 -1
  48. package/lib/typescript/src/utils/chart.d.ts +14 -0
  49. package/lib/typescript/src/utils/chart.d.ts.map +1 -1
  50. package/package.json +1 -1
  51. package/src/components/animated-badge/index.tsx +513 -0
  52. package/src/components/bottom-sheet/index.tsx +23 -8
  53. package/src/components/bubble-chart/index.tsx +2145 -0
  54. package/src/components/feedback-dialog/index.tsx +557 -0
  55. package/src/components/pyramid-chart/index.tsx +1360 -0
  56. package/src/components/scroll-blur/index.tsx +466 -0
  57. package/src/components/scroll-canvas/index.tsx +2 -1
  58. package/src/components/scroll-text/index.tsx +3 -3
  59. package/src/components/search-bar/index.tsx +933 -45
  60. package/src/hooks/use-keyboard-avoidance.ts +24 -1
  61. package/src/hooks/use-reveal-progress.ts +30 -1
  62. package/src/index.ts +72 -1
  63. package/src/utils/chart.ts +27 -0
@@ -1,13 +1,80 @@
1
1
  /**
2
2
  * SearchBar — a text field for querying a list, with the two controls a search
3
- * needs and an ordinary field does not.
3
+ * needs and an ordinary field does not, and a panel of results that opens out
4
+ * of the field itself.
4
5
  *
5
6
  * ```tsx
6
7
  * <SearchBar placeholder="Search orders" onSubmit={run} />
7
8
  * <SearchBar variant="filled" shape="pill" cancel="focus" />
8
- * <SearchBar debounce={250} onDebouncedChange={filter} loading={pending} />
9
+ * <SearchBar avoidKeyboard value={query} onChangeText={setQuery}>
10
+ * <SearchBar.Section label="Suggested">
11
+ * <SearchBar.Item trailing={<AddButton />} onPress={add}>Claude</SearchBar.Item>
12
+ * </SearchBar.Section>
13
+ * </SearchBar>
9
14
  * ```
10
15
  *
16
+ * ## The results are above the field, and the field is above the keyboard
17
+ *
18
+ * A search that is being typed into has a keyboard under it, and a list drawn
19
+ * below the field is a list drawn behind the keyboard. So `avoidKeyboard`
20
+ * lifts the field until it sits `keyboardOffset` points clear of the keyboard's
21
+ * top edge, and the panel opens *upward* out of it into the space that is
22
+ * actually free.
23
+ *
24
+ * That puts the first result nearest the field and the last one furthest away,
25
+ * which is the order a reader walking away from the caret expects. Pass
26
+ * `panelPlacement="bottom"` for a search bar in a header, where the space is
27
+ * the other way round.
28
+ *
29
+ * The panel is positioned absolutely rather than laid out in the flow, so
30
+ * opening it never moves the page underneath — a list that pushes the field it
31
+ * belongs to is a field that walks away from the finger typing into it.
32
+ *
33
+ * ## Touches inside the panel must not close the keyboard
34
+ *
35
+ * The panel scrolls with `keyboardShouldPersistTaps="always"`, and every press
36
+ * inside it holds the field's focus open for a moment afterwards. Both are
37
+ * needed, because a search closes the instant the field blurs and there are
38
+ * two separate ways for a touch in the panel to blur it.
39
+ *
40
+ * `"handled"` only spares presses a child takes responsibility for, which
41
+ * leaves the panel's own padding, the gaps between rows, a section heading and
42
+ * the whole of `SearchBar.Status` as live dismiss surfaces — tapping the word
43
+ * "Searching …" would end the search. `"always"` gives the panel back.
44
+ *
45
+ * The focus guard covers the other way: a control inside a row — an add
46
+ * button, a remove ✕ — takes focus with the press on Android, and returning it
47
+ * a frame later is not enough on its own, because the blur has already closed
48
+ * the panel the control was drawn in. So a press in the panel marks the field
49
+ * as still being used, and a blur arriving under that mark is answered by
50
+ * asking for focus back rather than by ending the search.
51
+ *
52
+ * That guard only knows about presses that go through this component's own
53
+ * parts, and a caller's `Pressable` in a row's `trailing` slot takes the touch
54
+ * itself. So the panel also waits before believing any blur, and asks the
55
+ * keyboard: it is still up, because nothing in the panel dismisses it, and a
56
+ * search whose keyboard is still up has not ended. Focus goes back instead.
57
+ *
58
+ * ## The space kept for the field is not a target
59
+ *
60
+ * The card is one box around the results *and* the field, so it carries a
61
+ * spacer where the field sits. That spacer is a plain view drawn over a
62
+ * focused field, and a touch on a plain view is the platform's cue to dismiss
63
+ * the keyboard — so winning one blurred the field and closed the panel drawn
64
+ * out of that focus. Tapping the search box shut the results, which is exactly
65
+ * backwards. The card and its spacer take no touches at all now.
66
+ *
67
+ * ## What has already been picked goes in the field
68
+ *
69
+ * `tokens` puts the choices made so far inside the field, before the caret, so
70
+ * the query and what it has produced are one control rather than a control and
71
+ * a list somewhere above it. `SearchBar.Token` is the chip; backspace on an
72
+ * empty field fires `onRemoveLastToken`, which is what a token field does
73
+ * everywhere else.
74
+ *
75
+ * They scroll rather than wrap: the field is one line tall, and a row of chips
76
+ * that grew it would move the caret every time something was picked.
77
+ *
11
78
  * ## The clear button, and why it is not the platform's
12
79
  *
13
80
  * A ✕ appears inside the field as soon as there is something to clear, and
@@ -44,22 +111,32 @@
44
111
  * a return key is somebody saying they are done waiting.
45
112
  */
46
113
  import { type ReactNode } from 'react';
47
- import { type TextInput } from 'react-native';
114
+ import { type TextInput, type ViewProps } from 'react-native';
48
115
  import { type VariantProps } from 'tailwind-variants';
116
+ import { type AnimatedPressableProps } from '../../primitives/animated-pressable.js';
49
117
  import { type InputProps } from '../input/index.js';
50
118
  declare const searchBarVariants: import("tailwind-variants").TVReturnType<{
51
119
  size: {
52
120
  sm: {
53
121
  cancelLabel: string;
54
122
  clear: string;
123
+ token: string;
124
+ tokenLabel: string;
125
+ tokenRemove: string;
55
126
  };
56
127
  md: {
57
128
  cancelLabel: string;
58
129
  clear: string;
130
+ token: string;
131
+ tokenLabel: string;
132
+ tokenRemove: string;
59
133
  };
60
134
  lg: {
61
135
  cancelLabel: string;
62
136
  clear: string;
137
+ token: string;
138
+ tokenLabel: string;
139
+ tokenRemove: string;
63
140
  };
64
141
  };
65
142
  /**
@@ -75,26 +152,67 @@ declare const searchBarVariants: import("tailwind-variants").TVReturnType<{
75
152
  field: string;
76
153
  };
77
154
  };
155
+ /**
156
+ * Which edge of the field the card grows out of. The field's corners on
157
+ * that edge go square and its border comes off entirely — the card around
158
+ * both of them is what draws the edge.
159
+ */
160
+ attached: {
161
+ none: {};
162
+ top: {
163
+ field: string;
164
+ };
165
+ bottom: {
166
+ field: string;
167
+ };
168
+ };
169
+ selected: {
170
+ true: {
171
+ item: string;
172
+ };
173
+ };
78
174
  }, {
79
175
  row: string;
176
+ anchor: string;
80
177
  field: string;
178
+ panel: string;
179
+ panelList: string;
180
+ /** The hairline between the results and the field. */
181
+ panelDivider: string;
182
+ sectionLabel: string;
183
+ item: string;
184
+ itemLabel: string;
185
+ status: string;
81
186
  cancelClip: string;
82
187
  cancelButton: string;
83
188
  cancelLabel: string;
84
189
  clear: string;
190
+ tokenRow: string;
191
+ token: string;
192
+ tokenLabel: string;
193
+ tokenRemove: string;
85
194
  }, undefined, {
86
195
  size: {
87
196
  sm: {
88
197
  cancelLabel: string;
89
198
  clear: string;
199
+ token: string;
200
+ tokenLabel: string;
201
+ tokenRemove: string;
90
202
  };
91
203
  md: {
92
204
  cancelLabel: string;
93
205
  clear: string;
206
+ token: string;
207
+ tokenLabel: string;
208
+ tokenRemove: string;
94
209
  };
95
210
  lg: {
96
211
  cancelLabel: string;
97
212
  clear: string;
213
+ token: string;
214
+ tokenLabel: string;
215
+ tokenRemove: string;
98
216
  };
99
217
  };
100
218
  /**
@@ -110,26 +228,67 @@ declare const searchBarVariants: import("tailwind-variants").TVReturnType<{
110
228
  field: string;
111
229
  };
112
230
  };
231
+ /**
232
+ * Which edge of the field the card grows out of. The field's corners on
233
+ * that edge go square and its border comes off entirely — the card around
234
+ * both of them is what draws the edge.
235
+ */
236
+ attached: {
237
+ none: {};
238
+ top: {
239
+ field: string;
240
+ };
241
+ bottom: {
242
+ field: string;
243
+ };
244
+ };
245
+ selected: {
246
+ true: {
247
+ item: string;
248
+ };
249
+ };
113
250
  }, {
114
251
  row: string;
252
+ anchor: string;
115
253
  field: string;
254
+ panel: string;
255
+ panelList: string;
256
+ /** The hairline between the results and the field. */
257
+ panelDivider: string;
258
+ sectionLabel: string;
259
+ item: string;
260
+ itemLabel: string;
261
+ status: string;
116
262
  cancelClip: string;
117
263
  cancelButton: string;
118
264
  cancelLabel: string;
119
265
  clear: string;
266
+ tokenRow: string;
267
+ token: string;
268
+ tokenLabel: string;
269
+ tokenRemove: string;
120
270
  }, import("tailwind-variants").TVReturnType<{
121
271
  size: {
122
272
  sm: {
123
273
  cancelLabel: string;
124
274
  clear: string;
275
+ token: string;
276
+ tokenLabel: string;
277
+ tokenRemove: string;
125
278
  };
126
279
  md: {
127
280
  cancelLabel: string;
128
281
  clear: string;
282
+ token: string;
283
+ tokenLabel: string;
284
+ tokenRemove: string;
129
285
  };
130
286
  lg: {
131
287
  cancelLabel: string;
132
288
  clear: string;
289
+ token: string;
290
+ tokenLabel: string;
291
+ tokenRemove: string;
133
292
  };
134
293
  };
135
294
  /**
@@ -145,24 +304,63 @@ declare const searchBarVariants: import("tailwind-variants").TVReturnType<{
145
304
  field: string;
146
305
  };
147
306
  };
307
+ /**
308
+ * Which edge of the field the card grows out of. The field's corners on
309
+ * that edge go square and its border comes off entirely — the card around
310
+ * both of them is what draws the edge.
311
+ */
312
+ attached: {
313
+ none: {};
314
+ top: {
315
+ field: string;
316
+ };
317
+ bottom: {
318
+ field: string;
319
+ };
320
+ };
321
+ selected: {
322
+ true: {
323
+ item: string;
324
+ };
325
+ };
148
326
  }, {
149
327
  row: string;
328
+ anchor: string;
150
329
  field: string;
330
+ panel: string;
331
+ panelList: string;
332
+ /** The hairline between the results and the field. */
333
+ panelDivider: string;
334
+ sectionLabel: string;
335
+ item: string;
336
+ itemLabel: string;
337
+ status: string;
151
338
  cancelClip: string;
152
339
  cancelButton: string;
153
340
  cancelLabel: string;
154
341
  clear: string;
342
+ tokenRow: string;
343
+ token: string;
344
+ tokenLabel: string;
345
+ tokenRemove: string;
155
346
  }, undefined, unknown, unknown, undefined>>;
156
347
  type SearchBarVariantProps = VariantProps<typeof searchBarVariants>;
348
+ /** Where the results open. */
349
+ export type SearchBarPanelPlacement = 'top' | 'bottom';
350
+ /** When the results are shown. */
351
+ export type SearchBarPanelMode = 'never' | 'focus' | 'always';
157
352
  /**
158
353
  * What SearchBar takes from Input, minus everything it owns itself. The form
159
354
  * furniture is dropped along with it: a label and an error line stack above
160
355
  * and below the field, and Cancel sits beside the whole stack rather than
161
356
  * beside the field it belongs to. Use `Field` for a search that is one answer
162
357
  * in a form.
358
+ *
359
+ * The keyboard props go too. Input's would move the field and leave the Cancel
360
+ * button and the panel where they were; SearchBar lifts all three together.
163
361
  */
164
- type InheritedInputProps = Omit<InputProps, 'defaultValue' | 'description' | 'endContent' | 'errorMessage' | 'interactiveContent' | 'isRequired' | 'label' | 'multiline' | 'onChangeText' | 'size' | 'startContent' | 'value'>;
165
- export interface SearchBarProps extends InheritedInputProps, SearchBarVariantProps {
362
+ type InheritedInputProps = Omit<InputProps, 'avoidKeyboard' | 'defaultValue' | 'description' | 'endContent' | 'errorMessage' | 'interactiveContent' | 'isRequired' | 'keyboardBottomInset' | 'keyboardMode' | 'keyboardOffset' | 'label' | 'multiline' | 'onChangeText' | 'size' | 'startContent' | 'value'>;
363
+ export interface SearchBarProps extends InheritedInputProps, Omit<SearchBarVariantProps, 'attached' | 'selected'> {
166
364
  /**
167
365
  * The field's background, from `Input`. `outline` draws its own edge, for a
168
366
  * search bar sitting on the page; `filled` drops it, for one inside a card
@@ -210,7 +408,153 @@ export interface SearchBarProps extends InheritedInputProps, SearchBarVariantPro
210
408
  loading?: boolean;
211
409
  /** The leading glyph, for a search over something with a symbol of its own. */
212
410
  icon?: ReactNode;
411
+ /**
412
+ * Lift the whole search — field, Cancel button and panel — until it sits
413
+ * clear of the software keyboard, and put it back on blur. Without it the
414
+ * field stays where the page left it, which on most screens is behind the
415
+ * keyboard it just opened.
416
+ *
417
+ * Install `react-native-keyboard-controller` for this to behave on Android.
418
+ *
419
+ * Do not toggle it at runtime: it changes which component wraps the row, so
420
+ * the field would remount and lose focus.
421
+ */
422
+ avoidKeyboard?: boolean;
423
+ /** Gap kept between the field's bottom edge and the keyboard. */
424
+ keyboardOffset?: number;
425
+ /**
426
+ * When the results panel is shown. `focus` opens it while the field is being
427
+ * typed into, `always` keeps it out for a screen that is nothing but the
428
+ * search, `never` ignores the children entirely.
429
+ */
430
+ panel?: SearchBarPanelMode;
431
+ /**
432
+ * Which side of the field the panel opens out of. `top` is the default,
433
+ * because the space under a focused field belongs to the keyboard.
434
+ */
435
+ panelPlacement?: SearchBarPanelPlacement;
436
+ /**
437
+ * Cap on the panel's height, in points.
438
+ *
439
+ * The panel takes the smaller of this and the room between the field and the
440
+ * edge of the screen, so it never runs off the top of the display. Unset, it
441
+ * is capped at about six rows: the space above a lifted field is most of the
442
+ * screen, and a panel that takes all of it stops reading as something laid
443
+ * over the app. Longer lists scroll.
444
+ */
445
+ panelMaxHeight?: number;
446
+ /**
447
+ * What has been picked so far, drawn inside the field before the caret.
448
+ * `SearchBar.Token` is the chip; anything else that fits on one line works
449
+ * too. Tokens scroll rather than wrap, so the field stays one line tall.
450
+ */
451
+ tokens?: ReactNode;
452
+ /**
453
+ * Fires when backspace is pressed in an empty field. Remove the last token
454
+ * here — it is the gesture every token field answers, and without it the
455
+ * only way back out of a choice is its own ✕.
456
+ */
457
+ onRemoveLastToken?: () => void;
458
+ /** The panel's contents — `SearchBar.Section`, `.Item` and `.Status`. */
459
+ children?: ReactNode;
460
+ }
461
+ export interface SearchBarSectionProps extends ViewProps {
462
+ className?: string;
463
+ /**
464
+ * The heading over the run of rows — "Suggested", "Results". Announced as a
465
+ * header, so a screen reader reaching the group is told what it is before
466
+ * walking into it.
467
+ */
468
+ label?: string;
469
+ children?: ReactNode;
470
+ }
471
+ /** A labelled run of rows inside the panel. */
472
+ declare function SearchBarSection({ className, label, children, ...props }: SearchBarSectionProps): import("react").JSX.Element;
473
+ declare namespace SearchBarSection {
474
+ var displayName: string;
475
+ }
476
+ export interface SearchBarItemProps extends Omit<AnimatedPressableProps, 'children'> {
477
+ className?: string;
478
+ /** Anything before the label — an avatar, a logo, a status dot. */
479
+ leading?: ReactNode;
480
+ /**
481
+ * Anything after it. A slot rather than a built-in button, because what a
482
+ * result row offers differs per search: an add, a pin, a count, nothing.
483
+ */
484
+ trailing?: ReactNode;
485
+ /** A second line under the label, for what the label alone cannot say. */
486
+ description?: string;
487
+ /** Draws the row as the one the search has settled on. */
488
+ selected?: boolean;
489
+ /** The row's label. */
490
+ children?: ReactNode;
491
+ }
492
+ /** One result. */
493
+ declare function SearchBarItem({ className, leading, trailing, description, selected, children, onPressIn, ...props }: SearchBarItemProps): import("react").JSX.Element;
494
+ declare namespace SearchBarItem {
495
+ var displayName: string;
496
+ }
497
+ export interface SearchBarStatusProps extends ViewProps {
498
+ className?: string;
499
+ /** A spinner beside the line, for a search that is still running. */
500
+ loading?: boolean;
501
+ children?: ReactNode;
502
+ }
503
+ /**
504
+ * The one line a panel shows instead of rows — nothing typed yet, a search in
505
+ * flight, or a query that matched nothing. It is a sentence rather than an
506
+ * empty box because those three states look identical when they are blank, and
507
+ * which one it is decides what the person does next.
508
+ */
509
+ declare function SearchBarStatus({ className, loading, children, ...props }: SearchBarStatusProps): import("react").JSX.Element;
510
+ declare namespace SearchBarStatus {
511
+ var displayName: string;
512
+ }
513
+ export interface SearchBarActionProps extends AnimatedPressableProps {
514
+ className?: string;
515
+ children?: ReactNode;
516
+ }
517
+ /**
518
+ * A button inside a row — an add, a pin, a remove — for the `trailing` slot.
519
+ *
520
+ * It exists rather than being left to a plain `Pressable` because a control
521
+ * nested inside a row takes the touch itself, so the row above it never sees
522
+ * the press and cannot hold the field's focus on its behalf. Pressed, this one
523
+ * ends up blurring the field, and a blurred field closes the panel the button
524
+ * was standing in — the press lands and the search disappears under it.
525
+ */
526
+ declare function SearchBarAction({ className, children, onPressIn, ...props }: SearchBarActionProps): import("react").JSX.Element;
527
+ declare namespace SearchBarAction {
528
+ var displayName: string;
529
+ }
530
+ export interface SearchBarTokenProps extends ViewProps {
531
+ className?: string;
532
+ /** Anything before the label — an avatar, a logo, a status dot. */
533
+ leading?: ReactNode;
534
+ /** Fires when the chip's ✕ is pressed. Without it no ✕ is drawn. */
535
+ onRemove?: () => void;
536
+ /** How the ✕ announces itself. Defaults to `Remove <label>`. */
537
+ removeLabel?: string;
538
+ /** The chip's label. */
539
+ children?: ReactNode;
540
+ }
541
+ /**
542
+ * One choice already made, drawn inside the field before the caret.
543
+ *
544
+ * It sits in the field rather than in a list above it so that the query and
545
+ * what the query has produced are one control. A search that files its results
546
+ * somewhere else asks the reader to look in two places to know where they are.
547
+ */
548
+ declare function SearchBarToken({ className, leading, onRemove, removeLabel, children, ...props }: SearchBarTokenProps): import("react").JSX.Element;
549
+ declare namespace SearchBarToken {
550
+ var displayName: string;
213
551
  }
214
- export declare const SearchBar: import("react").ForwardRefExoticComponent<SearchBarProps & import("react").RefAttributes<TextInput>>;
552
+ export declare const SearchBar: import("react").ForwardRefExoticComponent<SearchBarProps & import("react").RefAttributes<TextInput>> & {
553
+ Section: typeof SearchBarSection;
554
+ Item: typeof SearchBarItem;
555
+ Action: typeof SearchBarAction;
556
+ Token: typeof SearchBarToken;
557
+ Status: typeof SearchBarStatus;
558
+ };
215
559
  export {};
216
560
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/search-bar/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAIL,KAAK,SAAS,EAEf,MAAM,cAAc,CAAC;AAMtB,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAI1D,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,mBAAU,CAAC;AAqBlD,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;IAqBnB;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAJH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAJH;;;;OAIG;;;;;;;;;;;;;;;;2CAUL,CAAC;AAEH,KAAK,qBAAqB,GAAG,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAKpE;;;;;;GAMG;AACH,KAAK,mBAAmB,GAAG,IAAI,CAC7B,UAAU,EACR,cAAc,GACd,aAAa,GACb,YAAY,GACZ,cAAc,GACd,oBAAoB,GACpB,YAAY,GACZ,OAAO,GACP,WAAW,GACX,cAAc,GACd,MAAM,GACN,cAAc,GACd,OAAO,CACV,CAAC;AAEF,MAAM,WAAW,cAAe,SAAQ,mBAAmB,EAAE,qBAAqB;IAChF;;;;OAIG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAChC,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mFAAmF;IACnF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACtC,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,eAAO,MAAM,SAAS,sGA8OrB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/search-bar/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+GG;AACH,OAAO,EAYL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAOL,KAAK,SAAS,EAGd,KAAK,SAAS,EAEf,MAAM,cAAc,CAAC;AAQtB,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,wCAAqC,CAAC;AAG7C,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,mBAAU,CAAC;AA2GlD,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;IA2EnB;;;;OAIG;;;;;;;;;IAKH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;IA/DH,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkDtD;;;;OAIG;;;;;;;;;IAKH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;IA/DH,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkDtD;;;;OAIG;;;;;;;;;IAKH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;IA/DH,sDAAsD;;;;;;;;;;;;;;2CA8ExD,CAAC;AAEH,KAAK,qBAAqB,GAAG,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAkBpE,8BAA8B;AAC9B,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEvD,kCAAkC;AAClC,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE9D;;;;;;;;;GASG;AACH,KAAK,mBAAmB,GAAG,IAAI,CAC7B,UAAU,EACR,eAAe,GACf,cAAc,GACd,aAAa,GACb,YAAY,GACZ,cAAc,GACd,oBAAoB,GACpB,YAAY,GACZ,qBAAqB,GACrB,cAAc,GACd,gBAAgB,GAChB,OAAO,GACP,WAAW,GACX,cAAc,GACd,MAAM,GACN,cAAc,GACd,OAAO,CACV,CAAC;AAEF,MAAM,WAAW,cACf,SAAQ,mBAAmB,EACzB,IAAI,CAAC,qBAAqB,EAAE,UAAU,GAAG,UAAU,CAAC;IACtD;;;;OAIG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAChC,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mFAAmF;IACnF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACtC,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B;;;OAGG;IACH,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA8kBD,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,+CAA+C;AAC/C,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,+BAYxF;kBAZQ,gBAAgB;;;AAgBzB,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,sBAAsB,EAAE,UAAU,CAAC;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,kBAAkB;AAClB,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,kBAAkB,+BAwCpB;kBAjDQ,aAAa;;;AAqDtB,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;GAKG;AACH,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,OAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,oBAAoB,+BAUtB;kBAfQ,eAAe;;;AAmBxB,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,+BAkB1F;kBAlBQ,eAAe;;;AAsBxB,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;GAMG;AACH,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,mBAAmB,+BAqBrB;kBA5BQ,cAAc;;;AAgCvB,eAAO,MAAM,SAAS;;;;;;CAMpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-keyboard-avoidance.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-keyboard-avoidance.ts"],"names":[],"mappings":"AA+CA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,IAAI,EACT,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAML,gBAAgB,EAIhB,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAYjC,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,2BAA2B;IAC1C,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACvB,iFAAiF;IACjF,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,iCAAiC;IACjC,aAAa,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;CAC/D;AA6DD,mFAAmF;AACnF,wBAAgB,qBAAqB,IAAI,OAAO,CAS/C;AAED,wBAAgB,oBAAoB,CAAC,EACnC,OAAc,EACd,MAAa,EACb,IAAa,EACb,MAAW,EACX,WAAe,GAChB,GAAE,2BAAgC,GAAG,0BAA0B,CAgG/D"}
1
+ {"version":3,"file":"use-keyboard-avoidance.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-keyboard-avoidance.ts"],"names":[],"mappings":"AA+CA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,IAAI,EACT,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAML,gBAAgB,EAIhB,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAYjC,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,2BAA2B;IAC1C,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACvB,iFAAiF;IACjF,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,iCAAiC;IACjC,aAAa,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;CAC/D;AA6DD,mFAAmF;AACnF,wBAAgB,qBAAqB,IAAI,OAAO,CAS/C;AAED,wBAAgB,oBAAoB,CAAC,EACnC,OAAc,EACd,MAAa,EACb,IAAa,EACb,MAAW,EACX,WAAe,GAChB,GAAE,2BAAgC,GAAG,0BAA0B,CAuH/D"}
@@ -1,30 +1,3 @@
1
- /**
2
- * useRevealProgress — how far an element has travelled through the viewport.
3
- *
4
- * The number every scroll-driven effect is really made of: `0` before the
5
- * element has arrived, `1` once it has passed, and a smooth scrub between the
6
- * two. What an effect *does* with it — recolour, fade, zoom, step through
7
- * frames — is the only part that differs.
8
- *
9
- * The window is set the way a scroll-trigger's is: `start` and `end` are
10
- * positions down the viewport, as fractions of its height. Progress is `0`
11
- * while the element's **top** is still below `start`, and reaches `1` when its
12
- * **bottom** passes `end` — so a tall block scrubs across its own height rather
13
- * than snapping the moment its first line appears.
14
- *
15
- * ```tsx
16
- * const { ref, progress } = useRevealProgress({ start: 0.9, end: 0.5 });
17
- *
18
- * <Animated.View ref={ref} style={useAnimatedStyle(() => ({
19
- * opacity: progress.value,
20
- * }))} />
21
- * ```
22
- *
23
- * The element is measured on the UI thread whenever the scroll position
24
- * changes — not every frame, and not once at layout. Once is wrong the moment
25
- * anything above it resizes; every frame is a measurement pass for a value that
26
- * only changes when the scroller moves.
27
- */
28
1
  import { type View } from 'react-native';
29
2
  import { type AnimatedRef, type SharedValue } from 'react-native-reanimated';
30
3
  export interface UseRevealProgressOptions {
@@ -49,6 +22,12 @@ export interface UseRevealProgressOptions {
49
22
  export interface UseRevealProgressResult {
50
23
  /** Attach to the element whose travel drives the effect. */
51
24
  ref: AnimatedRef<View>;
25
+ /**
26
+ * Attach to the same element. It is what says the element can be measured —
27
+ * without it the effect still works, at the cost of a warning per frame for
28
+ * every element that is mounted but not yet laid out.
29
+ */
30
+ onLayout: () => void;
52
31
  /** `0` before, `1` after, scrubbed between. */
53
32
  progress: SharedValue<number>;
54
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-reveal-progress.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-reveal-progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAGjC,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,2EAA2E;IAC3E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,4DAA4D;IAC5D,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACvB,+CAA+C;IAC/C,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAW,EACX,GAAS,EACT,QAAQ,EAAE,QAAQ,EAClB,OAAc,GACf,GAAE,wBAA6B,GAAG,uBAAuB,CAoCzD"}
1
+ {"version":3,"file":"use-reveal-progress.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-reveal-progress.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAGjC,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,2EAA2E;IAC3E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,4DAA4D;IAC5D,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACvB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,+CAA+C;IAC/C,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAW,EACX,GAAS,EACT,QAAQ,EAAE,QAAQ,EAClB,OAAc,GACf,GAAE,wBAA6B,GAAG,uBAAuB,CAyDzD"}
@@ -15,6 +15,7 @@ export { Alert, type AlertProps, type AlertIndicatorProps, } from './components/
15
15
  export { Avatar, type AvatarProps, type AvatarBadgeProps, type AvatarGroupProps, } from './components/avatar/index.js';
16
16
  export { Attachment, type AttachmentProps, type AttachmentGroupProps, type AttachmentMediaProps, type AttachmentContentProps, type AttachmentTitleProps, type AttachmentDescriptionProps, type AttachmentActionsProps, type AttachmentActionProps, type AttachmentState, } from './components/attachment/index.js';
17
17
  export { AreaChart, useAreaChart, type AreaChartProps, type AreaChartHandle, type AreaChartGridProps, type AreaChartHeaderProps, type AreaChartAreaProps, type AreaChartXAxisProps, type AreaChartYAxisProps, type AreaChartTooltipProps, type AreaChartLegendProps, type AreaChartDatum, type AreaChartStatus, } from './components/area-chart/index.js';
18
+ export { AnimatedBadge, type AnimatedBadgeProps, type AnimatedBadgeSize, type AnimatedBadgeStatus, } from './components/animated-badge/index.js';
18
19
  export { Badge, type BadgeProps } from './components/badge/index.js';
19
20
  export { BarChart, useBarChart, type BarChartProps, type BarChartHandle, type BarChartHeaderProps, type BarChartGridProps, type BarChartBarProps, type BarChartXAxisProps, type BarChartYAxisProps, type BarChartTooltipProps, type BarChartLegendProps, type BarChartDatum, type BarChartStatus, type BarChartOrientation, } from './components/bar-chart/index.js';
20
21
  export { CandlestickChart, useCandlestickChart, type CandlestickChartProps, type CandlestickChartHandle, type CandlestickChartHeaderProps, type CandlestickChartGridProps, type CandlestickChartCandlesProps, type CandlestickChartXAxisProps, type CandlestickChartYAxisProps, type CandlestickChartTooltipProps, type CandlestickChartLegendProps, type CandlestickChartDatum, type CandlestickChartStatus, } from './components/candlestick-chart/index.js';
@@ -26,6 +27,7 @@ export { ToggleButton, ToggleButtonGroup, useToggleButton, type ToggleButtonProp
26
27
  export { DatePicker, type DatePickerProps, type DatePickerMode, } from './components/date-picker/index.js';
27
28
  export { DateTimePicker, type DateTimePickerProps, type DateTimePickerPresentation, } from './components/date-time-picker/index.js';
28
29
  export { Dialog, type DialogProps, type DialogContentProps, } from './components/dialog/index.js';
30
+ export { FeedbackDialog, type FeedbackDialogProps, type FeedbackDialogContentProps, type FeedbackDialogPanelProps, type FeedbackDialogCloseProps, type FeedbackDialogFieldProps, type FeedbackDialogFooterProps, type FeedbackDialogActionProps, type FeedbackDialogSubmitProps, } from './components/feedback-dialog/index.js';
29
31
  export { Soundwave, type SoundwaveProps, type SoundwaveState, type SoundwaveVariant, } from './components/soundwave/index.js';
30
32
  export { Direction, useDirection, useDirectionSign, type DirectionProps, type DirectionValue, } from './components/direction/index.js';
31
33
  export { Fab, type FabProps, type FabGroupProps, type FabActionProps, type FabPlacement, type FabSize, type FabVariant, } from './components/fab/index.js';
@@ -62,11 +64,13 @@ export { Input, type InputProps } from './components/input/index.js';
62
64
  export { InputGroup, type InputGroupProps, type InputGroupInputProps, type InputGroupDecoratorProps, } from './components/input-group/index.js';
63
65
  export { NumberInput, type NumberInputProps, } from './components/number-input/index.js';
64
66
  export { OtpInput, type OtpInputProps } from './components/otp-input/index.js';
65
- export { SearchBar, type SearchBarProps } from './components/search-bar/index.js';
67
+ export { SearchBar, type SearchBarProps, type SearchBarActionProps, type SearchBarItemProps, type SearchBarSectionProps, type SearchBarStatusProps, type SearchBarTokenProps, type SearchBarPanelMode, type SearchBarPanelPlacement, } from './components/search-bar/index.js';
66
68
  export { Panelside, usePanelside, type PanelsideProps, type PanelsidePanelProps, type PanelsideHeaderProps, type PanelsideSearchProps, type PanelsideContentProps, type PanelsideGroupProps, type PanelsideGroupLabelProps, type PanelsideItemProps, type PanelsideItemIconProps, type PanelsideItemLabelProps, type PanelsideItemBadgeProps, type PanelsideActionProps, type PanelsideItemActionsProps, type PanelsideFooterProps, type PanelsideCtaProps, type PanelsideSceneProps, type PanelsidePagesProps, type PanelsidePageProps, type PanelsideTriggerProps, type PanelsideSearchTriggerProps, type PanelsideMode, type PanelsideSwipeFrom, type PanelsideItemSize, type PanelsideCtaSize, type PanelsideSurface, type PanelsideControlVariant, type UsePanelsideResult, } from './components/panelside/index.js';
67
69
  export { Pagination, paginationRange, type PaginationProps, type PaginationItemProps, type PaginationPreviousProps, type PaginationNextProps, type PaginationEllipsisProps, type PaginationSummaryProps, type PaginationStatusProps, type PaginationVariant, type PaginationSize, type PaginationItemValue, } from './components/pagination/index.js';
68
70
  export { PieChart, usePieChart, type PieChartProps, type PieChartHandle, type PieChartHeaderProps, type PieChartSlicesProps, type PieChartCenterProps, type PieChartLegendProps, type PieChartSkeletonProps, type PieChartStatus, type PieDatum, } from './components/pie-chart/index.js';
69
71
  export { LiveLineChart, useLiveLineChart, type LiveLineChartProps, type LiveLineChartHandle, type LiveLineChartHeaderProps, type LiveLineChartGridProps, type LiveLineChartAreaProps, type LiveLineChartLineProps, type LiveLineChartTipProps, type LiveLineChartXAxisProps, type LiveLineChartYAxisProps, type LiveLineChartTooltipProps, type LiveLineChartSkeletonProps, type LiveLineChartStatus, type LiveLineMomentum, type LiveLineMomentumColors, type LiveLinePoint, } from './components/live-line-chart/index.js';
72
+ export { BubbleChart, useBubbleChart, type BubbleChartProps, type BubbleChartHandle, type BubbleChartHeaderProps, type BubbleChartGridProps, type BubbleChartQuadrantsProps, type BubbleChartTrendProps, type BubbleChartBubblesProps, type BubbleChartLabelsProps, type BubbleChartSizeKeyProps, type BubbleChartSkeletonProps, type BubbleChartXAxisProps, type BubbleChartYAxisProps, type BubbleChartTooltipProps, type BubbleChartLegendProps, type BubbleChartDatum, type BubbleChartPoint, type BubbleChartStatus, } from './components/bubble-chart/index.js';
73
+ export { PyramidChart, usePyramidChart, type PyramidChartProps, type PyramidChartHandle, type PyramidChartHeaderProps, type PyramidChartGridProps, type PyramidChartBarProps, type PyramidChartSkeletonProps, type PyramidChartXAxisProps, type PyramidChartYAxisProps, type PyramidChartTooltipProps, type PyramidChartLegendProps, type PyramidChartDatum, type PyramidChartStatus, type PyramidChartSide, type PyramidChartLabelPlacement, } from './components/pyramid-chart/index.js';
70
74
  export { PolarAreaChart, usePolarAreaChart, type PolarAreaChartProps, type PolarAreaChartHandle, type PolarAreaChartHeaderProps, type PolarAreaChartGridProps, type PolarAreaChartWedgesProps, type PolarAreaChartLabelsProps, type PolarAreaChartTooltipProps, type PolarAreaChartLegendProps, type PolarAreaChartSkeletonProps, type PolarAreaChartStatus, type PolarAreaScale, type PolarAreaDatum, } from './components/polar-area-chart/index.js';
71
75
  export { Plot, usePlot, usePlotCursor, type PlotProps, type PlotHandle, type PlotGeometry, type PlotHeaderProps, type PlotLegendProps, type PlotGridProps, type PlotSeriesProps, type PlotLineProps, type PlotAreaProps, type PlotBarsProps, type PlotDotsProps, type PlotRuleProps, type PlotLayerProps, type PlotOverlayProps, type PlotXAxisProps, type PlotYAxisProps, type PlotCursorProps, type PlotTooltipProps, type PlotDatum, type PlotStatus, type PlotCurve, type PlotScale, type PlotBound, type PlotBox, } from './components/plot/index.js';
72
76
  export { areaPath, bandOf, barPath, compactNumber, linePath, segment, xAt, xOf, yOf, type ChartPoint, } from './components/plot/index.js';
@@ -96,6 +100,7 @@ export { RadioGroup, type RadioGroupProps, type RadioGroupItemProps, } from './c
96
100
  export { Rating, type RatingProps, type RatingColor, type RatingSize, } from './components/rating/index.js';
97
101
  export { RingChart, useRingChart, type RingChartProps, type RingChartHandle, type RingChartRingProps, type RingChartCenterProps, type RingChartLegendProps, type RingDatum, } from './components/ring-chart/index.js';
98
102
  export { ScatterChart, useScatterChart, type ScatterChartProps, type ScatterChartHandle, type ScatterChartHeaderProps, type ScatterChartGridProps, type ScatterChartPointsProps, type ScatterChartSkeletonProps, type ScatterChartXAxisProps, type ScatterChartYAxisProps, type ScatterChartTooltipProps, type ScatterChartLegendProps, type ScatterChartDatum, type ScatterChartPoint, type ScatterChartStatus, } from './components/scatter-chart/index.js';
103
+ export { ScrollBlur, type ScrollBlurProps, type ScrollBlurTint, } from './components/scroll-blur/index.js';
99
104
  export { ScrollFade, type ScrollFadeProps, } from './components/scroll-fade/index.js';
100
105
  export { Separator, type SeparatorProps } from './components/separator/index.js';
101
106
  export { Signature, hasSignatureFileSystem, hasSignatureRaster, type SignatureProps, type SignatureHandle, type SignatureFile, type SignatureSaveOptions, type SignatureToolbarProps, type SignatureButtonProps, } from './components/signature/index.js';