panelui-native 0.5.3 → 0.7.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 (156) hide show
  1. package/README.md +9 -5
  2. package/lib/module/components/accordion/index.js +7 -5
  3. package/lib/module/components/accordion/index.js.map +1 -1
  4. package/lib/module/components/alert/index.js +3 -6
  5. package/lib/module/components/alert/index.js.map +1 -1
  6. package/lib/module/components/bottom-sheet/index.js +67 -3
  7. package/lib/module/components/bottom-sheet/index.js.map +1 -1
  8. package/lib/module/components/button/index.js +36 -1
  9. package/lib/module/components/button/index.js.map +1 -1
  10. package/lib/module/components/empty-state/index.js +4 -5
  11. package/lib/module/components/empty-state/index.js.map +1 -1
  12. package/lib/module/components/inline-select/index.js +171 -46
  13. package/lib/module/components/inline-select/index.js.map +1 -1
  14. package/lib/module/components/input/index.js +28 -5
  15. package/lib/module/components/input/index.js.map +1 -1
  16. package/lib/module/components/input-group/index.js +0 -1
  17. package/lib/module/components/input-group/index.js.map +1 -1
  18. package/lib/module/components/item/index.js +359 -0
  19. package/lib/module/components/item/index.js.map +1 -0
  20. package/lib/module/components/label/index.js +5 -3
  21. package/lib/module/components/label/index.js.map +1 -1
  22. package/lib/module/components/message/index.js +318 -0
  23. package/lib/module/components/message/index.js.map +1 -0
  24. package/lib/module/components/scroll-fade/index.js +204 -0
  25. package/lib/module/components/scroll-fade/index.js.map +1 -0
  26. package/lib/module/components/select/index.js +35 -6
  27. package/lib/module/components/select/index.js.map +1 -1
  28. package/lib/module/components/shimmer/index.js +167 -0
  29. package/lib/module/components/shimmer/index.js.map +1 -0
  30. package/lib/module/components/surface/index.js +65 -0
  31. package/lib/module/components/surface/index.js.map +1 -0
  32. package/lib/module/components/switch/index.js +20 -1
  33. package/lib/module/components/switch/index.js.map +1 -1
  34. package/lib/module/components/toast/index.js +7 -8
  35. package/lib/module/components/toast/index.js.map +1 -1
  36. package/lib/module/components/typography/index.js +3 -3
  37. package/lib/module/hooks/index.js +10 -0
  38. package/lib/module/hooks/index.js.map +1 -0
  39. package/lib/module/hooks/use-breakpoint.js +39 -0
  40. package/lib/module/hooks/use-breakpoint.js.map +1 -0
  41. package/lib/module/hooks/use-copy-to-clipboard.js +60 -0
  42. package/lib/module/hooks/use-copy-to-clipboard.js.map +1 -0
  43. package/lib/module/hooks/use-debounced-value.js +24 -0
  44. package/lib/module/hooks/use-debounced-value.js.map +1 -0
  45. package/lib/module/hooks/use-disclosure.js +43 -0
  46. package/lib/module/hooks/use-disclosure.js.map +1 -0
  47. package/lib/module/hooks/use-keyboard-avoidance.js +120 -0
  48. package/lib/module/hooks/use-keyboard-avoidance.js.map +1 -0
  49. package/lib/module/hooks/use-keyboard.js +36 -0
  50. package/lib/module/hooks/use-keyboard.js.map +1 -0
  51. package/lib/module/hooks/use-previous.js +25 -0
  52. package/lib/module/hooks/use-previous.js.map +1 -0
  53. package/lib/module/icons/index.js +4 -4
  54. package/lib/module/index.js +12 -0
  55. package/lib/module/index.js.map +1 -1
  56. package/lib/module/native/index.js +53 -0
  57. package/lib/module/native/index.js.map +1 -0
  58. package/lib/module/primitives/keyboard-avoider.js +40 -0
  59. package/lib/module/primitives/keyboard-avoider.js.map +1 -0
  60. package/lib/module/providers/panel-ui-provider.js +24 -4
  61. package/lib/module/providers/panel-ui-provider.js.map +1 -1
  62. package/lib/module/theme/use-theme.js +1 -1
  63. package/lib/typescript/src/components/accordion/index.d.ts +7 -5
  64. package/lib/typescript/src/components/accordion/index.d.ts.map +1 -1
  65. package/lib/typescript/src/components/alert/index.d.ts +3 -6
  66. package/lib/typescript/src/components/alert/index.d.ts.map +1 -1
  67. package/lib/typescript/src/components/bottom-sheet/index.d.ts +21 -1
  68. package/lib/typescript/src/components/bottom-sheet/index.d.ts.map +1 -1
  69. package/lib/typescript/src/components/button/index.d.ts +11 -0
  70. package/lib/typescript/src/components/button/index.d.ts.map +1 -1
  71. package/lib/typescript/src/components/empty-state/index.d.ts +4 -5
  72. package/lib/typescript/src/components/empty-state/index.d.ts.map +1 -1
  73. package/lib/typescript/src/components/inline-select/index.d.ts +29 -6
  74. package/lib/typescript/src/components/inline-select/index.d.ts.map +1 -1
  75. package/lib/typescript/src/components/input/index.d.ts +13 -0
  76. package/lib/typescript/src/components/input/index.d.ts.map +1 -1
  77. package/lib/typescript/src/components/input-group/index.d.ts +0 -1
  78. package/lib/typescript/src/components/input-group/index.d.ts.map +1 -1
  79. package/lib/typescript/src/components/item/index.d.ts +286 -0
  80. package/lib/typescript/src/components/item/index.d.ts.map +1 -0
  81. package/lib/typescript/src/components/label/index.d.ts +5 -3
  82. package/lib/typescript/src/components/label/index.d.ts.map +1 -1
  83. package/lib/typescript/src/components/message/index.d.ts +170 -0
  84. package/lib/typescript/src/components/message/index.d.ts.map +1 -0
  85. package/lib/typescript/src/components/scroll-fade/index.d.ts +47 -0
  86. package/lib/typescript/src/components/scroll-fade/index.d.ts.map +1 -0
  87. package/lib/typescript/src/components/select/index.d.ts +16 -1
  88. package/lib/typescript/src/components/select/index.d.ts.map +1 -1
  89. package/lib/typescript/src/components/shimmer/index.d.ts +60 -0
  90. package/lib/typescript/src/components/shimmer/index.d.ts.map +1 -0
  91. package/lib/typescript/src/components/surface/index.d.ts +30 -0
  92. package/lib/typescript/src/components/surface/index.d.ts.map +1 -0
  93. package/lib/typescript/src/components/switch/index.d.ts +10 -0
  94. package/lib/typescript/src/components/switch/index.d.ts.map +1 -1
  95. package/lib/typescript/src/components/toast/index.d.ts +4 -4
  96. package/lib/typescript/src/components/toast/index.d.ts.map +1 -1
  97. package/lib/typescript/src/hooks/index.d.ts +8 -0
  98. package/lib/typescript/src/hooks/index.d.ts.map +1 -0
  99. package/lib/typescript/src/hooks/use-breakpoint.d.ts +32 -0
  100. package/lib/typescript/src/hooks/use-breakpoint.d.ts.map +1 -0
  101. package/lib/typescript/src/hooks/use-copy-to-clipboard.d.ts +28 -0
  102. package/lib/typescript/src/hooks/use-copy-to-clipboard.d.ts.map +1 -0
  103. package/lib/typescript/src/hooks/use-debounced-value.d.ts +13 -0
  104. package/lib/typescript/src/hooks/use-debounced-value.d.ts.map +1 -0
  105. package/lib/typescript/src/hooks/use-disclosure.d.ts +32 -0
  106. package/lib/typescript/src/hooks/use-disclosure.d.ts.map +1 -0
  107. package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts +20 -0
  108. package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts.map +1 -0
  109. package/lib/typescript/src/hooks/use-keyboard.d.ts +20 -0
  110. package/lib/typescript/src/hooks/use-keyboard.d.ts.map +1 -0
  111. package/lib/typescript/src/hooks/use-previous.d.ts +15 -0
  112. package/lib/typescript/src/hooks/use-previous.d.ts.map +1 -0
  113. package/lib/typescript/src/icons/index.d.ts +4 -4
  114. package/lib/typescript/src/index.d.ts +8 -0
  115. package/lib/typescript/src/index.d.ts.map +1 -1
  116. package/lib/typescript/src/native/index.d.ts +35 -0
  117. package/lib/typescript/src/native/index.d.ts.map +1 -0
  118. package/lib/typescript/src/primitives/keyboard-avoider.d.ts +22 -0
  119. package/lib/typescript/src/primitives/keyboard-avoider.d.ts.map +1 -0
  120. package/lib/typescript/src/providers/panel-ui-provider.d.ts +1 -1
  121. package/lib/typescript/src/providers/panel-ui-provider.d.ts.map +1 -1
  122. package/lib/typescript/src/theme/use-theme.d.ts +1 -1
  123. package/package.json +19 -3
  124. package/src/components/accordion/index.tsx +7 -5
  125. package/src/components/alert/index.tsx +3 -6
  126. package/src/components/bottom-sheet/index.tsx +82 -2
  127. package/src/components/button/index.tsx +52 -0
  128. package/src/components/empty-state/index.tsx +4 -5
  129. package/src/components/inline-select/index.tsx +191 -44
  130. package/src/components/input/index.tsx +39 -3
  131. package/src/components/input-group/index.tsx +0 -1
  132. package/src/components/item/index.tsx +387 -0
  133. package/src/components/label/index.tsx +5 -3
  134. package/src/components/message/index.tsx +312 -0
  135. package/src/components/scroll-fade/index.tsx +280 -0
  136. package/src/components/select/index.tsx +54 -9
  137. package/src/components/shimmer/index.tsx +228 -0
  138. package/src/components/surface/index.tsx +64 -0
  139. package/src/components/switch/index.tsx +27 -1
  140. package/src/components/toast/index.tsx +7 -8
  141. package/src/components/typography/index.tsx +3 -3
  142. package/src/hooks/index.ts +24 -0
  143. package/src/hooks/use-breakpoint.ts +52 -0
  144. package/src/hooks/use-copy-to-clipboard.ts +79 -0
  145. package/src/hooks/use-debounced-value.ts +23 -0
  146. package/src/hooks/use-disclosure.ts +57 -0
  147. package/src/hooks/use-keyboard-avoidance.ts +140 -0
  148. package/src/hooks/use-keyboard.ts +43 -0
  149. package/src/hooks/use-previous.ts +24 -0
  150. package/src/icons/index.tsx +4 -4
  151. package/src/index.ts +41 -0
  152. package/src/native/index.ts +79 -0
  153. package/src/primitives/keyboard-avoider.tsx +49 -0
  154. package/src/providers/panel-ui-provider.tsx +30 -9
  155. package/src/theme/use-theme.ts +1 -1
  156. package/theme.css +23 -3
@@ -13,9 +13,24 @@ export interface SelectProps {
13
13
  /** Sheet title shown above the options. */
14
14
  title?: string;
15
15
  disabled?: boolean;
16
+ /**
17
+ * Render the platform's own picker instead of the trigger-and-sheet pair.
18
+ * Requires the optional `@expo/ui` package; without it this prop does
19
+ * nothing.
20
+ *
21
+ * **Theme tokens do not apply** — the platform draws the picker, so
22
+ * `className` and `title` are ignored. `Select.Item` children still declare
23
+ * the options.
24
+ */
25
+ native?: boolean;
26
+ /**
27
+ * Native picker style. `menu` is a compact button opening a dropdown;
28
+ * `wheel` is an always-visible rotor (iOS; falls back to `menu` elsewhere).
29
+ */
30
+ nativeAppearance?: 'menu' | 'wheel';
16
31
  children: ReactNode;
17
32
  }
18
- declare function SelectRoot({ className, value, onValueChange, placeholder, title, disabled, children, }: SelectProps): import("react").JSX.Element;
33
+ declare function SelectRoot({ className, value, onValueChange, placeholder, title, disabled, native, nativeAppearance, children, }: SelectProps): import("react").JSX.Element;
19
34
  export declare const Select: typeof SelectRoot & {
20
35
  Item: typeof SelectItem;
21
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/select/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAmCf,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4DAA4D;AAC5D,iBAAS,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,eAAe,+BA4BpD;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,KAAK,EACL,aAAa,EACb,WAAgC,EAChC,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE,WAAW,+BAoEb;AAED,eAAO,MAAM,MAAM;;CAEjB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/select/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAoCf,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4DAA4D;AAC5D,iBAAS,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,eAAe,+BA4BpD;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,KAAK,EACL,aAAa,EACb,WAAgC,EAChC,KAAK,EACL,QAAQ,EACR,MAAM,EACN,gBAAyB,EACzB,QAAQ,GACT,EAAE,WAAW,+BA+Fb;AAED,eAAO,MAAM,MAAM;;CAEjB,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Shimmer — a highlight that sweeps *through* content rather than over it.
3
+ *
4
+ * The content is used as a mask, and a gradient band is swept behind it on the
5
+ * UI thread. Because the content is the mask, the highlight is clipped to the
6
+ * glyph shapes: text reads as though the letters themselves are catching a
7
+ * light, which is the "thinking…" treatment familiar from AI chat interfaces.
8
+ *
9
+ * ```tsx
10
+ * <Shimmer>Thinking…</Shimmer>
11
+ * ```
12
+ *
13
+ * Set `as="view"` to shimmer arbitrary children (skeleton blocks, cards) — the
14
+ * mask is then the rendered subtree's alpha instead of a line of text.
15
+ */
16
+ import { type ReactNode } from 'react';
17
+ import { type StyleProp, type TextStyle, type ViewProps } from 'react-native';
18
+ export interface ShimmerProps extends ViewProps {
19
+ className?: string;
20
+ /**
21
+ * `text` renders `children` as a single styled string and masks the sweep to
22
+ * the glyphs. `view` masks the sweep to whatever subtree you pass.
23
+ */
24
+ as?: 'text' | 'view';
25
+ /** Milliseconds for one sweep. */
26
+ duration?: number;
27
+ /** Width of the highlight band, as a multiple of the content width. */
28
+ spread?: number;
29
+ /** Colour of the content at rest. Defaults to the theme's muted foreground. */
30
+ baseColor?: string;
31
+ /** Colour at the centre of the sweep. Defaults to the theme's foreground. */
32
+ shimmerColor?: string;
33
+ /** `loop` restarts from the left; `ping-pong` reverses on each pass. */
34
+ mode?: 'loop' | 'ping-pong';
35
+ /** Sweep once instead of repeating. */
36
+ once?: boolean;
37
+ /** Sweep right-to-left. */
38
+ reverse?: boolean;
39
+ /** Set false to render the content statically without animating. */
40
+ enabled?: boolean;
41
+ /** Extra classes for the text when `as="text"`. */
42
+ textClassName?: string;
43
+ /** Extra styles for the text when `as="text"`. */
44
+ textStyle?: StyleProp<TextStyle>;
45
+ /**
46
+ * @deprecated Use `shimmerColor`.
47
+ */
48
+ color?: string;
49
+ /**
50
+ * Peak opacity of the highlight.
51
+ * @deprecated Set `shimmerColor` to a colour with the alpha you want.
52
+ */
53
+ intensity?: number;
54
+ children?: ReactNode;
55
+ }
56
+ export declare function Shimmer({ className, as, duration, spread, baseColor, shimmerColor, mode, once, reverse, enabled, textClassName, textStyle, color, intensity, children, ...props }: ShimmerProps): import("react").JSX.Element;
57
+ export declare namespace Shimmer {
58
+ var displayName: string;
59
+ }
60
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/shimmer/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAgBtB,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC5B,uCAAuC;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,EACtB,SAAS,EACT,EAAW,EACX,QAAe,EACf,MAAU,EACV,SAAS,EACT,YAAY,EACZ,IAAa,EACb,IAAY,EACZ,OAAe,EACf,OAAc,EACd,aAAa,EACb,SAAS,EACT,KAAK,EACL,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,YAAY,+BAqGd;yBAtHe,OAAO"}
@@ -0,0 +1,30 @@
1
+ import { View, type ViewProps } from 'react-native';
2
+ import { type VariantProps } from 'tailwind-variants';
3
+ declare const surfaceVariants: import("tailwind-variants").TVReturnType<{
4
+ variant: {
5
+ default: string;
6
+ secondary: string;
7
+ tertiary: string;
8
+ transparent: string;
9
+ };
10
+ }, undefined, "overflow-hidden rounded-3xl p-4", {
11
+ variant: {
12
+ default: string;
13
+ secondary: string;
14
+ tertiary: string;
15
+ transparent: string;
16
+ };
17
+ }, undefined, import("tailwind-variants").TVReturnType<{
18
+ variant: {
19
+ default: string;
20
+ secondary: string;
21
+ tertiary: string;
22
+ transparent: string;
23
+ };
24
+ }, undefined, "overflow-hidden rounded-3xl p-4", unknown, unknown, undefined>>;
25
+ export interface SurfaceProps extends ViewProps, VariantProps<typeof surfaceVariants> {
26
+ className?: string;
27
+ }
28
+ export declare const Surface: import("react").ForwardRefExoticComponent<SurfaceProps & import("react").RefAttributes<View>>;
29
+ export {};
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/surface/index.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAAc,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1D,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;8EAanB,CAAC;AAEH,MAAM,WAAW,YACf,SAAQ,SAAS,EACf,YAAY,CAAC,OAAO,eAAe,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,OAAO,+FAYnB,CAAC"}
@@ -66,6 +66,16 @@ export interface SwitchProps extends VariantProps<typeof switchVariants> {
66
66
  value: boolean;
67
67
  onValueChange?: (value: boolean) => void;
68
68
  disabled?: boolean;
69
+ /**
70
+ * Render the platform's own switch instead of this one. Requires the
71
+ * optional `@expo/ui` package; without it this prop does nothing.
72
+ *
73
+ * **Theme tokens do not apply** — the platform draws the control, so
74
+ * `className` and `size` are ignored.
75
+ */
76
+ native?: boolean;
77
+ /** Text label drawn beside the control. Native mode only. */
78
+ label?: string;
69
79
  }
70
80
  /**
71
81
  * Animated switch. Thumb position and active-track opacity are driven on the
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/switch/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAa,IAAI,EAAE,MAAM,cAAc,CAAC;AAO/C,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAI1D,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAkBlB,CAAC;AAIH,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC,OAAO,cAAc,CAAC;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,8FAmClB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/switch/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAa,IAAI,EAAE,MAAM,cAAc,CAAC;AAO/C,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAK1D,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAkBlB,CAAC;AAIH,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC,OAAO,cAAc,CAAC;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,8FAkDlB,CAAC"}
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * Toast — transient notification.
3
3
  *
4
- * Adapted from: heroui-inc/heroui-native src/components/toast/
5
- * (the three usage patterns — string, config object, custom component — the
6
- * Title / Description / Action / Close anatomy, placement, and swipe-to-
7
- * dismiss). Styled with Coss UI tokens and PanelUI's Alert status palette.
4
+ * Three ways to raise one, because the right amount of ceremony differs: a
5
+ * bare string, a config object with a title, description and action, or a
6
+ * custom component when none of that fits. The anatomy underneath is the same
7
+ * in all three.
8
8
  *
9
9
  * The viewport is mounted for you by PanelUIProvider; `useToast()` works
10
10
  * anywhere below it.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/toast/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAkBpD,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,0BAAuB,CAAC;AAG7D,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,oBAAW,CAAC;AACrD,OAAO,EACL,KAAK,EAEL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,kBAAe,CAAC;AAkDvB,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAuBjB,CAAC;AA4BH,MAAM,WAAW,UAAW,SAAQ,SAAS,EAAE,YAAY,CAAC,OAAO,aAAa,CAAC;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAuBD,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAuDD,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsBD,eAAO,MAAM,KAAK;yDApGiE,UAAU;;;;uDAuBvB,mBAAmB;;;;kCAe1C,SAAS,GAAG;YAAE,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE;;;;kCAOpC,SAAS;;;;kCAOH,SAAS;;;;+CAQoB,WAAW;;;;kCAoB9C,eAAe;;;CA2B1D,CAAC;AAuQH;;;GAGG;AACH,wBAAgB,aAAa,uCAc5B;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ;;;;;;EAEvB;AAED,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,CAAC;AAC3F,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/toast/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAkBpD,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,0BAAuB,CAAC;AAG7D,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,oBAAW,CAAC;AACrD,OAAO,EACL,KAAK,EAEL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,kBAAe,CAAC;AAiDvB,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAuBjB,CAAC;AA4BH,MAAM,WAAW,UAAW,SAAQ,SAAS,EAAE,YAAY,CAAC,OAAO,aAAa,CAAC;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAuBD,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAuDD,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsBD,eAAO,MAAM,KAAK;yDApGiE,UAAU;;;;uDAuBvB,mBAAmB;;;;kCAe1C,SAAS,GAAG;YAAE,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE;;;;kCAOpC,SAAS;;;;kCAOH,SAAS;;;;+CAQoB,WAAW;;;;kCAoB9C,eAAe;;;CA2B1D,CAAC;AAuQH;;;GAGG;AACH,wBAAgB,aAAa,uCAc5B;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ;;;;;;EAEvB;AAED,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,CAAC;AAC3F,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { useCopyToClipboard, type UseCopyToClipboardOptions, type UseCopyToClipboardResult, } from './use-copy-to-clipboard.js';
2
+ export { useDisclosure, type UseDisclosureOptions, type UseDisclosureResult, } from './use-disclosure.js';
3
+ export { useBreakpoint, BREAKPOINTS, type Breakpoint, type UseBreakpointResult, } from './use-breakpoint.js';
4
+ export { useKeyboard, type UseKeyboardResult } from './use-keyboard.js';
5
+ export { useKeyboardAvoidance, type UseKeyboardAvoidanceOptions, type UseKeyboardAvoidanceResult, } from './use-keyboard-avoidance.js';
6
+ export { useDebouncedValue } from './use-debounced-value.js';
7
+ export { usePrevious } from './use-previous.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,4BAAyB,CAAC;AACjC,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,qBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,WAAW,EACX,KAAK,UAAU,EACf,KAAK,mBAAmB,GACzB,MAAM,qBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAgB,CAAC;AACrE,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,GAChC,MAAM,6BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAAuB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAgB,CAAC"}
@@ -0,0 +1,32 @@
1
+ /** Tailwind's breakpoints, minus the ones no phone or tablet reaches. */
2
+ export declare const BREAKPOINTS: {
3
+ readonly sm: 640;
4
+ readonly md: 768;
5
+ readonly lg: 1024;
6
+ readonly xl: 1280;
7
+ };
8
+ export type Breakpoint = keyof typeof BREAKPOINTS;
9
+ export interface UseBreakpointResult {
10
+ /** Largest breakpoint the window currently satisfies, or `base`. */
11
+ current: Breakpoint | 'base';
12
+ /** True when the window is at least this wide. */
13
+ isAtLeast: (breakpoint: Breakpoint) => boolean;
14
+ width: number;
15
+ height: number;
16
+ isLandscape: boolean;
17
+ }
18
+ /**
19
+ * Responsive state from the window size — the React Native answer to a media
20
+ * query, which has no equivalent here.
21
+ *
22
+ * For styling, prefer Uniwind's responsive class prefixes (`md:flex-row`).
23
+ * Reach for this when the *behaviour* changes, not just the look — rendering
24
+ * a sheet on a phone and a dialog on a tablet, say.
25
+ *
26
+ * ```tsx
27
+ * const { isAtLeast } = useBreakpoint();
28
+ * return isAtLeast('md') ? <Dialog …/> : <BottomSheet …/>;
29
+ * ```
30
+ */
31
+ export declare function useBreakpoint(): UseBreakpointResult;
32
+ //# sourceMappingURL=use-breakpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-breakpoint.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-breakpoint.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,eAAO,MAAM,WAAW;;;;;CAAoD,CAAC;AAE7E,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,WAAW,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC;IAC7B,kDAAkD;IAClD,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,IAAI,mBAAmB,CAqBnD"}
@@ -0,0 +1,28 @@
1
+ export interface UseCopyToClipboardOptions {
2
+ /** Milliseconds before `copied` flips back. */
3
+ timeout?: number;
4
+ onCopy?: () => void;
5
+ }
6
+ export interface UseCopyToClipboardResult {
7
+ /** Writes `value` to the clipboard and sets `copied`. */
8
+ copy: (value: string) => Promise<void>;
9
+ copied: boolean;
10
+ }
11
+ /**
12
+ * Copy text to the clipboard, with a temporary "copied" state.
13
+ *
14
+ * Requires `expo-clipboard`, which is an optional peer dependency — React
15
+ * Native removed `Clipboard` from core, and pulling in a required native
16
+ * module for one hook would cost every consumer who never calls it:
17
+ *
18
+ * ```sh
19
+ * npx expo install expo-clipboard
20
+ * ```
21
+ *
22
+ * ```tsx
23
+ * const { copy, copied } = useCopyToClipboard();
24
+ * <Button onPress={() => copy(url)}>{copied ? 'Copied' : 'Copy link'}</Button>
25
+ * ```
26
+ */
27
+ export declare function useCopyToClipboard({ timeout, onCopy, }?: UseCopyToClipboardOptions): UseCopyToClipboardResult;
28
+ //# sourceMappingURL=use-copy-to-clipboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-copy-to-clipboard.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-copy-to-clipboard.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,yBAAyB;IACxC,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,yDAAyD;IACzD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAc,EACd,MAAM,GACP,GAAE,yBAA8B,GAAG,wBAAwB,CA6B3D"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * A copy of `value` that only updates once it has stopped changing for
3
+ * `delay` ms — for search fields, where you want the typed value on screen
4
+ * immediately but the query fired once.
5
+ *
6
+ * ```tsx
7
+ * const [query, setQuery] = useState('');
8
+ * const debounced = useDebouncedValue(query, 300);
9
+ * useEffect(() => { search(debounced); }, [debounced]);
10
+ * ```
11
+ */
12
+ export declare function useDebouncedValue<T>(value: T, delay?: number): T;
13
+ //# sourceMappingURL=use-debounced-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-debounced-value.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-debounced-value.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,SAAM,GAAG,CAAC,CAS7D"}
@@ -0,0 +1,32 @@
1
+ export interface UseDisclosureOptions {
2
+ defaultOpen?: boolean;
3
+ /** Controlled open state. Pass this to drive it from outside. */
4
+ open?: boolean;
5
+ onOpenChange?: (open: boolean) => void;
6
+ }
7
+ export interface UseDisclosureResult {
8
+ isOpen: boolean;
9
+ open: () => void;
10
+ close: () => void;
11
+ toggle: () => void;
12
+ /** Spread onto Dialog, BottomSheet or Select. */
13
+ props: {
14
+ open: boolean;
15
+ onOpenChange: (open: boolean) => void;
16
+ };
17
+ }
18
+ /**
19
+ * Open/closed state for an overlay.
20
+ *
21
+ * The same controlled-or-uncontrolled pattern Dialog, BottomSheet and Select
22
+ * implement internally, lifted out for when you need to drive one from
23
+ * elsewhere — closing a sheet after a request settles, say.
24
+ *
25
+ * ```tsx
26
+ * const sheet = useDisclosure();
27
+ * <Button onPress={sheet.open}>Share</Button>
28
+ * <BottomSheet {...sheet.props}>…</BottomSheet>
29
+ * ```
30
+ */
31
+ export declare function useDisclosure({ defaultOpen, open: controlledOpen, onOpenChange, }?: UseDisclosureOptions): UseDisclosureResult;
32
+ //# sourceMappingURL=use-disclosure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-disclosure.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-disclosure.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iEAAiE;IACjE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,iDAAiD;IACjD,KAAK,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,CAAC;CACjE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,EAC5B,WAAmB,EACnB,IAAI,EAAE,cAAc,EACpB,YAAY,GACb,GAAE,oBAAyB,GAAG,mBAAmB,CAqBjD"}
@@ -0,0 +1,20 @@
1
+ import { type LayoutChangeEvent, type View } from 'react-native';
2
+ import { useAnimatedStyle, type AnimatedRef } from 'react-native-reanimated';
3
+ export interface UseKeyboardAvoidanceOptions {
4
+ /** Set false to leave the element where it is. */
5
+ enabled?: boolean;
6
+ /** Gap to keep between the element's bottom edge and the keyboard. */
7
+ offset?: number;
8
+ }
9
+ export interface UseKeyboardAvoidanceResult {
10
+ /** Attach to the element that should stay visible. */
11
+ ref: AnimatedRef<View>;
12
+ /** Attach to the same element — it is how the resting position is measured. */
13
+ onLayout: (event: LayoutChangeEvent) => void;
14
+ /** Apply to the same element. */
15
+ animatedStyle: ReturnType<typeof useAnimatedStyle>;
16
+ }
17
+ /** True when the keyboard controller is driving this, rather than the fallback. */
18
+ export declare function hasKeyboardController(): boolean;
19
+ export declare function useKeyboardAvoidance({ enabled, offset, }?: UseKeyboardAvoidanceOptions): UseKeyboardAvoidanceResult;
20
+ //# sourceMappingURL=use-keyboard-avoidance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-keyboard-avoidance.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-keyboard-avoidance.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAuB,KAAK,iBAAiB,EAAE,KAAK,IAAI,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAGL,gBAAgB,EAEhB,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,2BAA2B;IAC1C,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACvB,+EAA+E;IAC/E,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,iCAAiC;IACjC,aAAa,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;CACpD;AA6BD,mFAAmF;AACnF,wBAAgB,qBAAqB,IAAI,OAAO,CAQ/C;AAED,wBAAgB,oBAAoB,CAAC,EACnC,OAAc,EACd,MAAW,GACZ,GAAE,2BAAgC,GAAG,0BAA0B,CAsC/D"}
@@ -0,0 +1,20 @@
1
+ export interface UseKeyboardResult {
2
+ /** Height of the keyboard in px, or 0 when hidden. */
3
+ height: number;
4
+ isVisible: boolean;
5
+ }
6
+ /**
7
+ * Keyboard height and visibility, on the JS thread.
8
+ *
9
+ * Use this when the value drives rendering — showing a hint, swapping a
10
+ * layout. For *animating* against the keyboard, use Reanimated's
11
+ * `useAnimatedKeyboard` instead: it runs on the UI thread and tracks the
12
+ * keyboard frame-for-frame, where this fires once per show/hide.
13
+ *
14
+ * ```tsx
15
+ * const { isVisible } = useKeyboard();
16
+ * {isVisible ? null : <Footer />}
17
+ * ```
18
+ */
19
+ export declare function useKeyboard(): UseKeyboardResult;
20
+ //# sourceMappingURL=use-keyboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-keyboard.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-keyboard.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,IAAI,iBAAiB,CAoB/C"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The value from the previous render, or `undefined` on the first.
3
+ *
4
+ * Useful for reacting to a transition rather than a state — firing only when
5
+ * something *became* true.
6
+ *
7
+ * ```tsx
8
+ * const wasOpen = usePrevious(isOpen);
9
+ * useEffect(() => {
10
+ * if (isOpen && !wasOpen) track('sheet_opened');
11
+ * }, [isOpen, wasOpen]);
12
+ * ```
13
+ */
14
+ export declare function usePrevious<T>(value: T): T | undefined;
15
+ //# sourceMappingURL=use-previous.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-previous.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-previous.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAQtD"}
@@ -2,10 +2,10 @@
2
2
  * Icon set.
3
3
  *
4
4
  * Two families live here:
5
- * - Stroked 24×24 icons (Lucide geometry, as used by shadcn-ui/ui) for chrome
6
- * such as chevrons and the close button.
7
- * - Filled 16×16 status icons for Alert and Toast indicators.
8
- * Adapted from: heroui-inc/heroui-native src/components/alert/{default,success,warning}-icon.tsx
5
+ * - Stroked 24×24 icons on Lucide geometry, for chrome such as chevrons and
6
+ * the close button.
7
+ * - Filled 16×16 status icons for Alert and Toast indicators, which read
8
+ * better small than a stroked equivalent would.
9
9
  *
10
10
  * Every icon resolves its colour in the same order: an explicit `color` prop,
11
11
  * then the colour inherited from an enclosing `IconColorProvider`, then its
@@ -2,7 +2,9 @@ export { PanelUIProvider, type PanelUIProviderProps } from './providers/panel-ui
2
2
  export { useTheme, useThemeMode, PANEL_THEMES, PANEL_THEME_NAMES, PANEL_EXTRA_THEMES, type ThemeName, type ThemeMode, type PanelTheme, type PanelThemeFamily, } from './theme/use-theme.js';
3
3
  export { Portal, PortalHost, PortalProvider } from './primitives/portal.js';
4
4
  export { Text, type TextProps } from './primitives/text.js';
5
+ export { KeyboardAvoider, type KeyboardAvoiderProps, } from './primitives/keyboard-avoider.js';
5
6
  export { AnimatedPressable, type AnimatedPressableProps, } from './primitives/animated-pressable.js';
7
+ export { hasNativeUI } from './native/index.js';
6
8
  export { Accordion, type AccordionProps, type AccordionItemProps, type AccordionTriggerProps, type AccordionIndicatorProps, type AccordionContentProps, type AccordionVariant, type AccordionSelectionMode, } from './components/accordion/index.js';
7
9
  export { Alert, type AlertProps, type AlertIndicatorProps, } from './components/alert/index.js';
8
10
  export { Avatar, type AvatarProps, type AvatarBadgeProps, } from './components/avatar/index.js';
@@ -19,16 +21,22 @@ export { Checkbox, type CheckboxProps } from './components/checkbox/index.js';
19
21
  export { EmptyState, type EmptyStateProps, type EmptyStateMediaProps, } from './components/empty-state/index.js';
20
22
  export { Input, type InputProps } from './components/input/index.js';
21
23
  export { InputGroup, type InputGroupProps, type InputGroupInputProps, type InputGroupDecoratorProps, } from './components/input-group/index.js';
24
+ export { Item, type ItemProps, type ItemGroupProps, type ItemSeparatorProps, type ItemMediaProps, type ItemContentProps, type ItemTitleProps, type ItemDescriptionProps, type ItemActionsProps, type ItemHeaderProps, type ItemFooterProps, } from './components/item/index.js';
22
25
  export { Label, type LabelProps, type LabelTextProps } from './components/label/index.js';
26
+ export { Message, type MessageProps, type MessageGroupProps, type MessageAvatarProps, type MessageContentProps, type MessageHeaderProps, type MessageBubbleProps, type MessageBubbleContentProps, type MessageFooterProps, type MessageActionsProps, } from './components/message/index.js';
23
27
  export { Progress, type ProgressProps } from './components/progress/index.js';
24
28
  export { RadioGroup, type RadioGroupProps, type RadioGroupItemProps, } from './components/radio-group/index.js';
29
+ export { ScrollFade, type ScrollFadeProps, } from './components/scroll-fade/index.js';
30
+ export { Shimmer, type ShimmerProps } from './components/shimmer/index.js';
25
31
  export { Skeleton, type SkeletonProps } from './components/skeleton/index.js';
26
32
  export { Spinner, type SpinnerProps } from './components/spinner/index.js';
27
33
  export { Steps, type StepsProps, type StepsItemProps, type StepsTriggerProps, type StepsIndicatorProps, type StepsSeparatorProps, type StepState, type StepsOrientation, } from './components/steps/index.js';
34
+ export { Surface, type SurfaceProps } from './components/surface/index.js';
28
35
  export { Switch, type SwitchProps } from './components/switch/index.js';
29
36
  export { Timeline, type TimelineProps, type TimelineItemProps, type TimelineIndicatorProps, type TimelineStatProps, type TimelineVariant, type TimelineTone, } from './components/timeline/index.js';
30
37
  export { Toast, ToastViewport, toast, useToast, type ToastProps, type ToastOptions, type ToastItem, type ToastVariant, type ToastPlacement, type ToastHandle, type ToastIndicatorProps, type ToastCloseProps, } from './components/toast/index.js';
31
38
  export { Typography, type TypographyProps, type TypographyType, type TypographyHeadingProps, type TypographyParagraphProps, type TypographyCodeProps, } from './components/typography/index.js';
32
39
  export { AlertTriangleIcon, AppleIcon, ArrowUpRightIcon, BellIcon, CardIcon, CheckCircleIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, FacebookIcon, GoogleIcon, IconColorProvider, InfoIcon, MoonIcon, PackageIcon, PlusSquareIcon, ReceiptIcon, SearchIcon, SendIcon, ShareNodesIcon, ShieldAlertIcon, ShieldCheckIcon, SunIcon, XIcon, useIconColor, type IconProps, } from './icons/index.js';
40
+ export * from './hooks/index.js';
33
41
  export { cn } from './utils/cn.js';
34
42
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { ComponentType, ReactNode } from 'react';
2
+ interface NativeUIModule {
3
+ Host: ComponentType<{
4
+ children?: ReactNode;
5
+ matchContents?: boolean;
6
+ style?: unknown;
7
+ [key: string]: unknown;
8
+ }>;
9
+ /**
10
+ * Hosts React Native views inside the native tree. Anything of ours that
11
+ * goes inside a native container has to be wrapped in this or the native
12
+ * layout does not measure it — children spill outside their container.
13
+ */
14
+ RNHostView: ComponentType<{
15
+ children?: ReactNode;
16
+ matchContents?: boolean;
17
+ style?: unknown;
18
+ }>;
19
+ Button: ComponentType<Record<string, unknown>>;
20
+ Switch: ComponentType<Record<string, unknown>>;
21
+ Picker: ComponentType<Record<string, unknown>> & {
22
+ Item: ComponentType<Record<string, unknown>>;
23
+ };
24
+ BottomSheet: ComponentType<Record<string, unknown>>;
25
+ }
26
+ /**
27
+ * The native UI module, or null when it is not installed or the platform has
28
+ * no toolkit behind it. Resolved once and cached — a failed require is not
29
+ * retried on every render.
30
+ */
31
+ export declare function getNativeUI(): NativeUIModule | null;
32
+ /** Whether `native` will actually render a platform control. */
33
+ export declare function hasNativeUI(): boolean;
34
+ export {};
35
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/native/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,UAAU,cAAc;IACtB,IAAI,EAAE,aAAa,CAAC;QAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC,CAAC;IACH;;;;OAIG;IACH,UAAU,EAAE,aAAa,CAAC;QACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC,CAAC;IACH,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/C,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/C,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG;QAC/C,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KAC9C,CAAC;IACF,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrD;AAKD;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,cAAc,GAAG,IAAI,CAgBnD;AAED,gEAAgE;AAChE,wBAAgB,WAAW,IAAI,OAAO,CAErC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * KeyboardAvoider — a view that lifts itself just clear of the keyboard.
3
+ *
4
+ * A thin wrapper over `useKeyboardAvoidance` for the common case of "keep this
5
+ * box visible", so a form does not have to wire the ref, layout handler and
6
+ * animated style by hand.
7
+ */
8
+ import type { ReactNode } from 'react';
9
+ import type { ViewProps } from 'react-native';
10
+ export interface KeyboardAvoiderProps extends ViewProps {
11
+ className?: string;
12
+ /** Set false to leave the content where it is. */
13
+ enabled?: boolean;
14
+ /** Gap to keep between the content's bottom edge and the keyboard. */
15
+ offset?: number;
16
+ children?: ReactNode;
17
+ }
18
+ export declare function KeyboardAvoider({ className, enabled, offset, children, style, onLayout, ...props }: KeyboardAvoiderProps): import("react").JSX.Element;
19
+ export declare namespace KeyboardAvoider {
20
+ var displayName: string;
21
+ }
22
+ //# sourceMappingURL=keyboard-avoider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard-avoider.d.ts","sourceRoot":"","sources":["../../../../src/primitives/keyboard-avoider.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,OAAc,EACd,MAAW,EACX,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,oBAAoB,+BAiBtB;yBAzBe,eAAe"}
@@ -1,4 +1,4 @@
1
- import type { ReactNode } from 'react';
1
+ import { type ReactNode } from 'react';
2
2
  export interface PanelUIProviderProps {
3
3
  children: ReactNode;
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"panel-ui-provider.d.ts","sourceRoot":"","sources":["../../../../src/providers/panel-ui-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,SAAS,EACT,UAAiB,GAClB,EAAE,oBAAoB,+BAatB"}
1
+ {"version":3,"file":"panel-ui-provider.d.ts","sourceRoot":"","sources":["../../../../src/providers/panel-ui-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAwBrE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,SAAS,EACT,UAAiB,GAClB,EAAE,oBAAoB,+BAiBtB"}
@@ -17,7 +17,7 @@ export interface PanelThemeFamily {
17
17
  /**
18
18
  * The theme families PanelUI ships. Each sets its own palette *and* its own
19
19
  * radius scale, so switching family changes the shape of the UI as well as
20
- * its colour — Panel is the Coss default, Moon is sharp and monochrome,
20
+ * its colour — Panel is the default, Moon is sharp and monochrome,
21
21
  * Grass is soft and green.
22
22
  *
23
23
  * Everything beyond `panel` must be registered in your metro config, or
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "panelui-native",
3
- "version": "0.5.3",
4
- "description": "High-performance React Native UI components for Expo. Coss UI design language, powered by Uniwind (Tailwind v4) and Reanimated.",
3
+ "version": "0.7.0",
4
+ "description": "High-performance React Native UI components for Expo. Semantic design tokens, powered by Uniwind (Tailwind v4) and Reanimated.",
5
5
  "main": "./lib/module/index.js",
6
6
  "module": "./lib/module/index.js",
7
7
  "types": "./lib/typescript/src/index.d.ts",
@@ -43,7 +43,6 @@
43
43
  "nativewind",
44
44
  "reanimated",
45
45
  "design-system",
46
- "shadcn",
47
46
  "dark-mode",
48
47
  "theming",
49
48
  "accessibility",
@@ -64,11 +63,17 @@
64
63
  "license": "MIT",
65
64
  "homepage": "https://github.com/panel-ui/PanelUI#readme",
66
65
  "peerDependencies": {
66
+ "@expo/ui": "*",
67
+ "@react-native-masked-view/masked-view": ">=0.3.0",
68
+ "expo-clipboard": ">=7.0.0",
69
+ "expo-linear-gradient": ">=13.0.0",
67
70
  "react": "*",
68
71
  "react-native": "*",
69
72
  "react-native-gesture-handler": ">=2.0.0",
73
+ "react-native-keyboard-controller": ">=1.12.0",
70
74
  "react-native-reanimated": ">=3.0.0",
71
75
  "react-native-safe-area-context": ">=4.0.0",
76
+ "react-native-svg": ">=15.0.0",
72
77
  "tailwindcss": ">=4.0.0",
73
78
  "uniwind": ">=1.0.0"
74
79
  },
@@ -92,5 +97,16 @@
92
97
  ],
93
98
  "typescript"
94
99
  ]
100
+ },
101
+ "peerDependenciesMeta": {
102
+ "@expo/ui": {
103
+ "optional": true
104
+ },
105
+ "expo-clipboard": {
106
+ "optional": true
107
+ },
108
+ "react-native-keyboard-controller": {
109
+ "optional": true
110
+ }
95
111
  }
96
112
  }