panelui-native 0.13.0 → 0.14.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 (91) hide show
  1. package/README.md +39 -23
  2. package/lib/module/components/button/index.js +12 -9
  3. package/lib/module/components/button/index.js.map +1 -1
  4. package/lib/module/components/chip/index.js +313 -0
  5. package/lib/module/components/chip/index.js.map +1 -0
  6. package/lib/module/components/frame/index.js +41 -39
  7. package/lib/module/components/frame/index.js.map +1 -1
  8. package/lib/module/components/heatmap-chart/index.js +772 -0
  9. package/lib/module/components/heatmap-chart/index.js.map +1 -0
  10. package/lib/module/components/input/index.js +4 -0
  11. package/lib/module/components/input/index.js.map +1 -1
  12. package/lib/module/components/scroll-canvas/index.js +175 -0
  13. package/lib/module/components/scroll-canvas/index.js.map +1 -0
  14. package/lib/module/components/scroll-text/index.js +213 -0
  15. package/lib/module/components/scroll-text/index.js.map +1 -0
  16. package/lib/module/components/select/index.js +20 -24
  17. package/lib/module/components/select/index.js.map +1 -1
  18. package/lib/module/components/slider/index.js +2 -5
  19. package/lib/module/components/slider/index.js.map +1 -1
  20. package/lib/module/components/switch/index.js +15 -17
  21. package/lib/module/components/switch/index.js.map +1 -1
  22. package/lib/module/components/thinking-orb/index.js +741 -0
  23. package/lib/module/components/thinking-orb/index.js.map +1 -0
  24. package/lib/module/components/toggle-button/index.js +12 -3
  25. package/lib/module/components/toggle-button/index.js.map +1 -1
  26. package/lib/module/hooks/index.js +1 -0
  27. package/lib/module/hooks/index.js.map +1 -1
  28. package/lib/module/hooks/use-keyboard-avoidance.js +99 -59
  29. package/lib/module/hooks/use-keyboard-avoidance.js.map +1 -1
  30. package/lib/module/hooks/use-reveal-progress.js +75 -0
  31. package/lib/module/hooks/use-reveal-progress.js.map +1 -0
  32. package/lib/module/index.js +6 -0
  33. package/lib/module/index.js.map +1 -1
  34. package/lib/module/native/index.js.map +1 -1
  35. package/lib/module/primitives/keyboard-avoider.js +21 -2
  36. package/lib/module/primitives/keyboard-avoider.js.map +1 -1
  37. package/lib/module/primitives/scroll-progress.js +114 -0
  38. package/lib/module/primitives/scroll-progress.js.map +1 -0
  39. package/lib/typescript/src/components/button/index.d.ts +3 -4
  40. package/lib/typescript/src/components/button/index.d.ts.map +1 -1
  41. package/lib/typescript/src/components/chip/index.d.ts +304 -0
  42. package/lib/typescript/src/components/chip/index.d.ts.map +1 -0
  43. package/lib/typescript/src/components/frame/index.d.ts +15 -13
  44. package/lib/typescript/src/components/frame/index.d.ts.map +1 -1
  45. package/lib/typescript/src/components/heatmap-chart/index.d.ts +260 -0
  46. package/lib/typescript/src/components/heatmap-chart/index.d.ts.map +1 -0
  47. package/lib/typescript/src/components/input/index.d.ts +19 -4
  48. package/lib/typescript/src/components/input/index.d.ts.map +1 -1
  49. package/lib/typescript/src/components/scroll-canvas/index.d.ts +66 -0
  50. package/lib/typescript/src/components/scroll-canvas/index.d.ts.map +1 -0
  51. package/lib/typescript/src/components/scroll-text/index.d.ts +46 -0
  52. package/lib/typescript/src/components/scroll-text/index.d.ts.map +1 -0
  53. package/lib/typescript/src/components/select/index.d.ts.map +1 -1
  54. package/lib/typescript/src/components/slider/index.d.ts.map +1 -1
  55. package/lib/typescript/src/components/switch/index.d.ts.map +1 -1
  56. package/lib/typescript/src/components/thinking-orb/index.d.ts +28 -0
  57. package/lib/typescript/src/components/thinking-orb/index.d.ts.map +1 -0
  58. package/lib/typescript/src/components/toggle-button/index.d.ts +12 -0
  59. package/lib/typescript/src/components/toggle-button/index.d.ts.map +1 -1
  60. package/lib/typescript/src/hooks/index.d.ts +2 -1
  61. package/lib/typescript/src/hooks/index.d.ts.map +1 -1
  62. package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts +16 -3
  63. package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts.map +1 -1
  64. package/lib/typescript/src/hooks/use-reveal-progress.d.ts +56 -0
  65. package/lib/typescript/src/hooks/use-reveal-progress.d.ts.map +1 -0
  66. package/lib/typescript/src/index.d.ts +6 -0
  67. package/lib/typescript/src/index.d.ts.map +1 -1
  68. package/lib/typescript/src/native/index.d.ts +15 -7
  69. package/lib/typescript/src/native/index.d.ts.map +1 -1
  70. package/lib/typescript/src/primitives/keyboard-avoider.d.ts +30 -3
  71. package/lib/typescript/src/primitives/keyboard-avoider.d.ts.map +1 -1
  72. package/lib/typescript/src/primitives/scroll-progress.d.ts +61 -0
  73. package/lib/typescript/src/primitives/scroll-progress.d.ts.map +1 -0
  74. package/package.json +1 -1
  75. package/src/components/button/index.tsx +13 -11
  76. package/src/components/frame/index.tsx +39 -50
  77. package/src/components/heatmap-chart/index.tsx +1024 -0
  78. package/src/components/input/index.tsx +23 -4
  79. package/src/components/scroll-canvas/index.tsx +220 -0
  80. package/src/components/scroll-text/index.tsx +277 -0
  81. package/src/components/select/index.tsx +4 -9
  82. package/src/components/slider/index.tsx +4 -7
  83. package/src/components/switch/index.tsx +5 -8
  84. package/src/components/thinking-orb/index.tsx +792 -0
  85. package/src/hooks/index.ts +6 -0
  86. package/src/hooks/use-keyboard-avoidance.ts +111 -65
  87. package/src/hooks/use-reveal-progress.ts +106 -0
  88. package/src/index.ts +38 -0
  89. package/src/native/index.ts +15 -7
  90. package/src/primitives/keyboard-avoider.tsx +41 -4
  91. package/src/primitives/scroll-progress.tsx +167 -0
@@ -1,11 +1,26 @@
1
1
  "use strict";
2
2
 
3
3
  /**
4
- * KeyboardAvoider — a view that lifts itself just clear of the keyboard.
4
+ * KeyboardAvoider — a view that keeps itself clear of the keyboard.
5
5
  *
6
6
  * A thin wrapper over `useKeyboardAvoidance` for the common case of "keep this
7
7
  * box visible", so a form does not have to wire the ref, layout handler and
8
8
  * animated style by hand.
9
+ *
10
+ * ```tsx
11
+ * // In the flow of a scrolling page: lifts by the overlap, follows the scroll.
12
+ * <KeyboardAvoider active={focused}>…</KeyboardAvoider>
13
+ *
14
+ * // Pinned to the bottom edge: rides the keyboard up and back down.
15
+ * <KeyboardAvoider
16
+ * mode="dock"
17
+ * bottomInset={insets.bottom}
18
+ * className="absolute left-0 right-0"
19
+ * style={{ bottom: insets.bottom + 16 }}
20
+ * >
21
+ * …
22
+ * </KeyboardAvoider>
23
+ * ```
9
24
  */
10
25
 
11
26
  import Animated from 'react-native-reanimated';
@@ -15,7 +30,9 @@ export function KeyboardAvoider({
15
30
  className,
16
31
  enabled = true,
17
32
  active = true,
33
+ mode = 'lift',
18
34
  offset = 16,
35
+ bottomInset = 0,
19
36
  children,
20
37
  style,
21
38
  onLayout,
@@ -24,7 +41,9 @@ export function KeyboardAvoider({
24
41
  const avoidance = useKeyboardAvoidance({
25
42
  enabled,
26
43
  active,
27
- offset
44
+ mode,
45
+ offset,
46
+ bottomInset
28
47
  });
29
48
  return /*#__PURE__*/_jsx(Animated.View, {
30
49
  ...props,
@@ -1 +1 @@
1
- {"version":3,"names":["Animated","useKeyboardAvoidance","jsx","_jsx","KeyboardAvoider","className","enabled","active","offset","children","style","onLayout","props","avoidance","View","ref","event","animatedStyle","displayName"],"sourceRoot":"../../../src","sources":["primitives/keyboard-avoider.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,oBAAoB,QAAQ,oCAAiC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAkBvE,OAAO,SAASC,eAAeA,CAAC;EAC9BC,SAAS;EACTC,OAAO,GAAG,IAAI;EACdC,MAAM,GAAG,IAAI;EACbC,MAAM,GAAG,EAAE;EACXC,QAAQ;EACRC,KAAK;EACLC,QAAQ;EACR,GAAGC;AACiB,CAAC,EAAE;EACvB,MAAMC,SAAS,GAAGZ,oBAAoB,CAAC;IAAEK,OAAO;IAAEC,MAAM;IAAEC;EAAO,CAAC,CAAC;EAEnE,oBACEL,IAAA,CAACH,QAAQ,CAACc,IAAI;IAAA,GACRF,KAAK;IACTG,GAAG,EAAEF,SAAS,CAACE,GAAI;IACnBJ,QAAQ,EAAGK,KAAK,IAAK;MACnBH,SAAS,CAACF,QAAQ,CAACK,KAAK,CAAC;MACzBL,QAAQ,GAAGK,KAAK,CAAC;IACnB,CAAE;IACFX,SAAS,EAAEA,SAAU;IACrBK,KAAK,EAAE,CAACA,KAAK,EAAEG,SAAS,CAACI,aAAa,CAAE;IAAAR,QAAA,EAEvCA;EAAQ,CACI,CAAC;AAEpB;AAEAL,eAAe,CAACc,WAAW,GAAG,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["Animated","useKeyboardAvoidance","jsx","_jsx","KeyboardAvoider","className","enabled","active","mode","offset","bottomInset","children","style","onLayout","props","avoidance","View","ref","event","animatedStyle","displayName"],"sourceRoot":"../../../src","sources":["primitives/keyboard-avoider.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,QAAQ,MAAM,yBAAyB;AAC9C,SACEC,oBAAoB,QAEf,oCAAiC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AA6BzC,OAAO,SAASC,eAAeA,CAAC;EAC9BC,SAAS;EACTC,OAAO,GAAG,IAAI;EACdC,MAAM,GAAG,IAAI;EACbC,IAAI,GAAG,MAAM;EACbC,MAAM,GAAG,EAAE;EACXC,WAAW,GAAG,CAAC;EACfC,QAAQ;EACRC,KAAK;EACLC,QAAQ;EACR,GAAGC;AACiB,CAAC,EAAE;EACvB,MAAMC,SAAS,GAAGd,oBAAoB,CAAC;IACrCK,OAAO;IACPC,MAAM;IACNC,IAAI;IACJC,MAAM;IACNC;EACF,CAAC,CAAC;EAEF,oBACEP,IAAA,CAACH,QAAQ,CAACgB,IAAI;IAAA,GACRF,KAAK;IACTG,GAAG,EAAEF,SAAS,CAACE,GAAI;IACnBJ,QAAQ,EAAGK,KAAK,IAAK;MACnBH,SAAS,CAACF,QAAQ,CAACK,KAAK,CAAC;MACzBL,QAAQ,GAAGK,KAAK,CAAC;IACnB,CAAE;IACFb,SAAS,EAAEA,SAAU;IACrBO,KAAK,EAAE,CAACA,KAAK,EAAEG,SAAS,CAACI,aAAa,CAAE;IAAAR,QAAA,EAEvCA;EAAQ,CACI,CAAC;AAEpB;AAEAP,eAAe,CAACgB,WAAW,GAAG,iBAAiB","ignoreList":[]}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * ScrollProgress — publishes a scroll container's position so children can
5
+ * animate against it.
6
+ *
7
+ * Scroll-driven effects all need the same two numbers: where the scroller is,
8
+ * and how tall its viewport is. Every component that wanted them measuring for
9
+ * itself would mean one scroll listener per effect and one measurement pass per
10
+ * effect per frame, for two values that are the same for all of them.
11
+ *
12
+ * It wraps the scroll view you already have rather than replacing it — the
13
+ * child is cloned with an animated scroll handler composed onto it, the same
14
+ * way `ScrollFade` does — so a `FlatList`, a `SectionList` or your own
15
+ * scrollable all work, and nothing has to be rewritten to adopt it.
16
+ *
17
+ * ```tsx
18
+ * <ScrollProgress>
19
+ * <ScrollView>
20
+ * <ScrollText>…</ScrollText>
21
+ * </ScrollView>
22
+ * </ScrollProgress>
23
+ * ```
24
+ *
25
+ * Both values are shared values, so the whole chain from scroll event to
26
+ * animated style stays on the UI thread and nothing re-renders as you scroll.
27
+ */
28
+ import { Children, createContext, isValidElement, useContext, useMemo, useRef } from 'react';
29
+ import { View } from 'react-native';
30
+ import Animated, { useAnimatedScrollHandler, useComposedEventHandler, useSharedValue } from 'react-native-reanimated';
31
+ import { jsx as _jsx } from "react/jsx-runtime";
32
+ const ScrollProgressContext = /*#__PURE__*/createContext(null);
33
+
34
+ /**
35
+ * The nearest enclosing scroll container's position, or `null` outside one.
36
+ *
37
+ * It returns null rather than throwing because every consumer of this also
38
+ * takes an explicit `progress` prop — a component that can be driven by hand
39
+ * should not insist on a provider it does not need.
40
+ */
41
+ export function useScrollProgress() {
42
+ return useContext(ScrollProgressContext);
43
+ }
44
+ export function ScrollProgress({
45
+ className,
46
+ children,
47
+ ...props
48
+ }) {
49
+ const offset = useSharedValue(0);
50
+ const viewport = useSharedValue(0);
51
+ const content = useSharedValue(0);
52
+ const top = useSharedValue(0);
53
+ const hostRef = useRef(null);
54
+ const child = Children.only(children);
55
+
56
+ // Reanimated can only drive a scroll handler on an animated component, and
57
+ // what was passed in is not necessarily `Animated.ScrollView`. Keyed on the
58
+ // element *type*, not the element: rebuilding the wrapper would remount the
59
+ // list and lose its scroll position.
60
+ const childType = /*#__PURE__*/isValidElement(child) ? child.type : null;
61
+ const AnimatedScrollable = useMemo(() => childType ? Animated.createAnimatedComponent(childType) : null, [childType]);
62
+ const scrollHandler = useAnimatedScrollHandler({
63
+ onScroll: event => {
64
+ offset.value = event.contentOffset.y;
65
+ viewport.value = event.layoutMeasurement.height;
66
+ content.value = event.contentSize.height;
67
+ }
68
+ });
69
+
70
+ // A consumer's own `onScroll` is composed rather than dropped — but since the
71
+ // child is now an animated component, it has to be an animated handler too.
72
+ const onScroll = useComposedEventHandler([scrollHandler, child.props.onScroll ?? null]);
73
+
74
+ // Taken up front as well as on scroll, so anything already on screen animates
75
+ // from the first frame instead of waiting for the first scroll event.
76
+ const onLayout = event => {
77
+ viewport.value = event.nativeEvent.layout.height;
78
+ // A frame later than onLayout on both platforms, because measureInWindow
79
+ // is only meaningful once the view is attached and positioned.
80
+ requestAnimationFrame(() => {
81
+ hostRef.current?.measureInWindow((_x, y) => {
82
+ if (y >= 0) top.value = y;
83
+ });
84
+ });
85
+ child.props.onLayout?.(event);
86
+ };
87
+ const onContentSizeChange = (width, height) => {
88
+ content.value = height;
89
+ child.props.onContentSizeChange?.(width, height);
90
+ };
91
+ const value = useMemo(() => ({
92
+ offset,
93
+ viewport,
94
+ content,
95
+ top
96
+ }), [offset, viewport, content, top]);
97
+ return /*#__PURE__*/_jsx(ScrollProgressContext.Provider, {
98
+ value: value,
99
+ children: /*#__PURE__*/_jsx(View, {
100
+ ...props,
101
+ ref: hostRef,
102
+ className: className,
103
+ children: AnimatedScrollable && /*#__PURE__*/isValidElement(child) ? /*#__PURE__*/_jsx(AnimatedScrollable, {
104
+ ...child.props,
105
+ onScroll: onScroll,
106
+ onLayout: onLayout,
107
+ onContentSizeChange: onContentSizeChange,
108
+ scrollEventThrottle: child.props.scrollEventThrottle ?? 16
109
+ }) : child
110
+ })
111
+ });
112
+ }
113
+ ScrollProgress.displayName = 'ScrollProgress';
114
+ //# sourceMappingURL=scroll-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Children","createContext","isValidElement","useContext","useMemo","useRef","View","Animated","useAnimatedScrollHandler","useComposedEventHandler","useSharedValue","jsx","_jsx","ScrollProgressContext","useScrollProgress","ScrollProgress","className","children","props","offset","viewport","content","top","hostRef","child","only","childType","type","AnimatedScrollable","createAnimatedComponent","scrollHandler","onScroll","event","value","contentOffset","y","layoutMeasurement","height","contentSize","onLayout","nativeEvent","layout","requestAnimationFrame","current","measureInWindow","_x","onContentSizeChange","width","Provider","ref","scrollEventThrottle","displayName"],"sourceRoot":"../../../src","sources":["primitives/scroll-progress.tsx"],"mappings":"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","ignoreList":[]}
@@ -220,10 +220,9 @@ export interface ButtonProps extends Omit<AnimatedPressableProps, 'children' | '
220
220
  * `primary`/`destructive` → filled, `outline` → outlined, everything else
221
221
  * → text; `size` sets the height.
222
222
  *
223
- * A native button **fills the width it is given**, because the host is told
224
- * its size rather than left to measure the platform's content — which is
225
- * what made it collapse and then jump on first press. Put it in a row to
226
- * share the width, or in a narrower parent to shrink it.
223
+ * A native button **sizes itself to its label**, the way a platform button
224
+ * is supposed to. It does not stretch to fill its container, and `fullWidth`
225
+ * has no effect on it.
227
226
  */
228
227
  native?: boolean;
229
228
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/button/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,wCAAqC,CAAC;AAM7C,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiCd,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAA7E,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAA7E,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAwBjF,CAAC;AAEH,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;AAsB9D,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,UAAU,CAAC,EAC3D,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC;IACtC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iFAAiF;IACjF,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,wCAAwC;IACxC,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA+BD,eAAO,MAAM,MAAM,8FA4FlB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/button/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,wCAAqC,CAAC;AAM7C,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiCd,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAA7E,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAA7E,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAwBjF,CAAC;AAEH,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;AAsB9D,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,UAAU,CAAC,EAC3D,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC;IACtC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iFAAiF;IACjF,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,wCAAwC;IACxC,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAiCD,eAAO,MAAM,MAAM,8FA6FlB,CAAC"}
@@ -0,0 +1,304 @@
1
+ /**
2
+ * Chip — a compact, interactive token.
3
+ *
4
+ * Where Badge only shows and ToggleButton owns a stateful toolbar, Chip is the
5
+ * thing in between: a small pill you can *press*, mark as *selected*, or
6
+ * *remove*. It is the filter in a filter bar, the tag on a photo, the removable
7
+ * recipient in a "To:" field — small, dense, and touchable.
8
+ *
9
+ * The close button is its own hit target nested inside the pill, so tapping the
10
+ * ✕ removes the chip without also firing the chip's own `onPress`. That split
11
+ * is the whole reason a removable chip needs a component and not just a styled
12
+ * Badge.
13
+ *
14
+ * ```tsx
15
+ * <Chip>Design</Chip>
16
+ *
17
+ * <Chip variant="info" onClose={() => remove('design')}>Design</Chip>
18
+ *
19
+ * <Chip selected={on} onPress={() => setOn(!on)}>
20
+ * <CheckIcon size={14} />
21
+ * <Chip.Label>Available</Chip.Label>
22
+ * </Chip>
23
+ * ```
24
+ */
25
+ import { type ReactNode } from 'react';
26
+ import { View } from 'react-native';
27
+ import { type VariantProps } from 'tailwind-variants';
28
+ import { type AnimatedPressableProps } from '../../primitives/animated-pressable.js';
29
+ declare const chipVariants: import("tailwind-variants").TVReturnType<{
30
+ variant: {
31
+ /** The resting tag — a quiet neutral fill. */
32
+ default: {
33
+ root: string;
34
+ label: string;
35
+ };
36
+ /** The accent fill, for the one chip that leads. */
37
+ primary: {
38
+ root: string;
39
+ label: string;
40
+ };
41
+ /** Just an outline — the lightest a chip gets while still being a shape. */
42
+ outline: {
43
+ root: string;
44
+ label: string;
45
+ };
46
+ success: {
47
+ root: string;
48
+ label: string;
49
+ };
50
+ warning: {
51
+ root: string;
52
+ label: string;
53
+ };
54
+ info: {
55
+ root: string;
56
+ label: string;
57
+ };
58
+ destructive: {
59
+ root: string;
60
+ label: string;
61
+ };
62
+ };
63
+ size: {
64
+ sm: {
65
+ root: string;
66
+ label: string;
67
+ };
68
+ md: {
69
+ root: string;
70
+ label: string;
71
+ };
72
+ lg: {
73
+ root: string;
74
+ label: string;
75
+ };
76
+ };
77
+ /**
78
+ * The filter "on" state — a loud accent surface that wins over the resting
79
+ * variant, so any chip can be a filter without picking a second colour.
80
+ */
81
+ selected: {
82
+ true: {
83
+ root: string;
84
+ label: string;
85
+ };
86
+ };
87
+ /** Trims the trailing padding so the close target hugs the right edge. */
88
+ closable: {
89
+ true: {
90
+ root: string;
91
+ };
92
+ };
93
+ disabled: {
94
+ true: {
95
+ root: string;
96
+ };
97
+ };
98
+ }, {
99
+ root: string;
100
+ label: string;
101
+ close: string;
102
+ }, undefined, {
103
+ variant: {
104
+ /** The resting tag — a quiet neutral fill. */
105
+ default: {
106
+ root: string;
107
+ label: string;
108
+ };
109
+ /** The accent fill, for the one chip that leads. */
110
+ primary: {
111
+ root: string;
112
+ label: string;
113
+ };
114
+ /** Just an outline — the lightest a chip gets while still being a shape. */
115
+ outline: {
116
+ root: string;
117
+ label: string;
118
+ };
119
+ success: {
120
+ root: string;
121
+ label: string;
122
+ };
123
+ warning: {
124
+ root: string;
125
+ label: string;
126
+ };
127
+ info: {
128
+ root: string;
129
+ label: string;
130
+ };
131
+ destructive: {
132
+ root: string;
133
+ label: string;
134
+ };
135
+ };
136
+ size: {
137
+ sm: {
138
+ root: string;
139
+ label: string;
140
+ };
141
+ md: {
142
+ root: string;
143
+ label: string;
144
+ };
145
+ lg: {
146
+ root: string;
147
+ label: string;
148
+ };
149
+ };
150
+ /**
151
+ * The filter "on" state — a loud accent surface that wins over the resting
152
+ * variant, so any chip can be a filter without picking a second colour.
153
+ */
154
+ selected: {
155
+ true: {
156
+ root: string;
157
+ label: string;
158
+ };
159
+ };
160
+ /** Trims the trailing padding so the close target hugs the right edge. */
161
+ closable: {
162
+ true: {
163
+ root: string;
164
+ };
165
+ };
166
+ disabled: {
167
+ true: {
168
+ root: string;
169
+ };
170
+ };
171
+ }, {
172
+ root: string;
173
+ label: string;
174
+ close: string;
175
+ }, import("tailwind-variants").TVReturnType<{
176
+ variant: {
177
+ /** The resting tag — a quiet neutral fill. */
178
+ default: {
179
+ root: string;
180
+ label: string;
181
+ };
182
+ /** The accent fill, for the one chip that leads. */
183
+ primary: {
184
+ root: string;
185
+ label: string;
186
+ };
187
+ /** Just an outline — the lightest a chip gets while still being a shape. */
188
+ outline: {
189
+ root: string;
190
+ label: string;
191
+ };
192
+ success: {
193
+ root: string;
194
+ label: string;
195
+ };
196
+ warning: {
197
+ root: string;
198
+ label: string;
199
+ };
200
+ info: {
201
+ root: string;
202
+ label: string;
203
+ };
204
+ destructive: {
205
+ root: string;
206
+ label: string;
207
+ };
208
+ };
209
+ size: {
210
+ sm: {
211
+ root: string;
212
+ label: string;
213
+ };
214
+ md: {
215
+ root: string;
216
+ label: string;
217
+ };
218
+ lg: {
219
+ root: string;
220
+ label: string;
221
+ };
222
+ };
223
+ /**
224
+ * The filter "on" state — a loud accent surface that wins over the resting
225
+ * variant, so any chip can be a filter without picking a second colour.
226
+ */
227
+ selected: {
228
+ true: {
229
+ root: string;
230
+ label: string;
231
+ };
232
+ };
233
+ /** Trims the trailing padding so the close target hugs the right edge. */
234
+ closable: {
235
+ true: {
236
+ root: string;
237
+ };
238
+ };
239
+ disabled: {
240
+ true: {
241
+ root: string;
242
+ };
243
+ };
244
+ }, {
245
+ root: string;
246
+ label: string;
247
+ close: string;
248
+ }, undefined, unknown, unknown, undefined>>;
249
+ type ChipVariantProps = VariantProps<typeof chipVariants>;
250
+ export type ChipVariant = NonNullable<ChipVariantProps['variant']>;
251
+ export type ChipSize = NonNullable<ChipVariantProps['size']>;
252
+ interface ChipStateValue {
253
+ selected: boolean;
254
+ disabled: boolean;
255
+ }
256
+ /**
257
+ * The chip's own state, for anything rendered inside it — an icon that swaps
258
+ * when the chip is selected, a count that only shows when it is on.
259
+ */
260
+ export declare function useChip(): ChipStateValue;
261
+ export interface ChipProps extends Omit<AnimatedPressableProps, 'children' | 'disabled'>, Omit<ChipVariantProps, 'selected' | 'disabled' | 'closable'> {
262
+ children?: ReactNode;
263
+ className?: string;
264
+ /** Extra classes for the label when `children` is a string. */
265
+ labelClassName?: string;
266
+ /**
267
+ * The filter "on" state. Setting it (even to `false`) makes the chip a
268
+ * toggle, announced as such — pair it with `onPress` to flip it.
269
+ */
270
+ selected?: boolean;
271
+ disabled?: boolean;
272
+ /** A leading icon or avatar, before the label. */
273
+ start?: ReactNode;
274
+ /**
275
+ * Shows a trailing ✕ and calls this when it is pressed. The ✕ is its own hit
276
+ * target, so removing a chip never also fires its `onPress`.
277
+ */
278
+ onClose?: () => void;
279
+ /** Accessibility label for the ✕. Defaults to "Remove". */
280
+ closeLabel?: string;
281
+ /**
282
+ * A tick under the finger when the chip is pressed or removed. Off by
283
+ * default — needs the optional `expo-haptics`, and is silent without it.
284
+ */
285
+ haptics?: boolean;
286
+ }
287
+ export interface ChipLabelProps {
288
+ className?: string;
289
+ children: ReactNode;
290
+ }
291
+ /**
292
+ * The label, when the chip holds more than a string — an icon beside text. It
293
+ * reads the selected state itself, so composing the two does not mean threading
294
+ * the colour through by hand.
295
+ */
296
+ declare function ChipLabel({ className, children }: ChipLabelProps): import("react").JSX.Element;
297
+ declare namespace ChipLabel {
298
+ var displayName: string;
299
+ }
300
+ export declare const Chip: import("react").ForwardRefExoticComponent<ChipProps & import("react").RefAttributes<View>> & {
301
+ Label: typeof ChipLabel;
302
+ };
303
+ export {};
304
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/chip/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAa,IAAI,EAAkB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,wCAAqC,CAAC;AAK7C,QAAA,MAAM,YAAY;;QASZ,8CAA8C;;;;;QAE9C,oDAAoD;;;;;QAEpD,4EAA4E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqB9E;;;OAGG;;;;;;;IAOH,0EAA0E;;;;;;;;;;;;;;;;;QAnCxE,8CAA8C;;;;;QAE9C,oDAAoD;;;;;QAEpD,4EAA4E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqB9E;;;OAGG;;;;;;;IAOH,0EAA0E;;;;;;;;;;;;;;;;;QAnCxE,8CAA8C;;;;;QAE9C,oDAAoD;;;;;QAEpD,4EAA4E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqB9E;;;OAGG;;;;;;;IAOH,0EAA0E;;;;;;;;;;;;;;;2CAiB5E,CAAC;AAEH,KAAK,gBAAgB,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;AACnE,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;AAoB7D,UAAU,cAAc;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AASD;;;GAGG;AACH,wBAAgB,OAAO,IAAI,cAAc,CAMxC;AAMD,MAAM,WAAW,SACf,SAAQ,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,UAAU,CAAC,EAC3D,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IAC9D,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kDAAkD;IAClD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA+HD,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;GAIG;AACH,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,cAAc,+BAMzD;kBANQ,SAAS;;;AASlB,eAAO,MAAM,IAAI;;CAEf,CAAC"}
@@ -1,23 +1,29 @@
1
1
  /**
2
- * Frame — a widget shell: a titled surface wrapping an inset panel of rows,
3
- * with an optional action on the header row and a caption underneath.
2
+ * Frame — a widget shell: a card of rows sitting in a tray, with the tray's
3
+ * one exposed strip along the top carrying the title.
4
4
  *
5
- * Layout follows the nested-radius rule (inner radius = outer radius minus the
6
- * gap between them), which is why the panel is `rounded-xl` inside a
7
- * `rounded-2xl` shell. Since v0.4.0 the radius scale is theme-scoped, so this
8
- * relationship holds while the absolute values change per theme.
5
+ * The two surfaces are nested rather than stacked, and only one edge of the
6
+ * outer one is ever visible. The panel is flush to the shell's left, right and
7
+ * bottom, so the shell reads as something the card is *sitting in* rather than
8
+ * as a border around it — and the strip left at the top is the header, which
9
+ * is why the header needs no rule under it and no background of its own.
10
+ *
11
+ * The shell's radius is the larger of the two, and the panel's top corners are
12
+ * tighter. That is the reverse of the usual nested-radius rule, and it is
13
+ * deliberate: with only the top corners free, matching them would make the two
14
+ * surfaces read as one misdrawn shape. The panel's bottom corners are not set
15
+ * at all — the shell clips them, so they take its radius exactly.
9
16
  *
10
17
  * ```tsx
11
18
  * <Frame>
12
19
  * <Frame.Header>
13
- * <Frame.Title>Usage Type</Frame.Title>
14
- * <Frame.Action>Amount</Frame.Action>
20
+ * <Frame.Title>Agent monitor</Frame.Title>
21
+ * <Frame.Action>All agents under 25% token limit</Frame.Action>
15
22
  * </Frame.Header>
16
23
  * <Frame.Panel>
17
24
  * <Frame.Row>…</Frame.Row>
18
25
  * <Frame.Row>…</Frame.Row>
19
26
  * </Frame.Panel>
20
- * <Frame.Footer>Updated 2 minutes ago</Frame.Footer>
21
27
  * </Frame>
22
28
  * ```
23
29
  *
@@ -78,9 +84,6 @@ export interface FrameSectionProps extends FrameProps, Dividable {
78
84
  divided?: boolean;
79
85
  children?: ReactNode;
80
86
  }
81
- export interface FrameFooterProps extends FrameProps {
82
- children?: ReactNode;
83
- }
84
87
  export declare const Frame: import("react").ForwardRefExoticComponent<FrameRootProps & import("react").RefAttributes<View>> & {
85
88
  Header: import("react").ForwardRefExoticComponent<FrameHeaderProps & import("react").RefAttributes<View>>;
86
89
  Title: import("react").ForwardRefExoticComponent<TextProps & import("react").RefAttributes<RNText>>;
@@ -89,7 +92,6 @@ export declare const Frame: import("react").ForwardRefExoticComponent<FrameRootP
89
92
  Panel: import("react").ForwardRefExoticComponent<FramePanelProps & import("react").RefAttributes<View>>;
90
93
  Section: import("react").ForwardRefExoticComponent<FrameSectionProps & import("react").RefAttributes<View>>;
91
94
  Row: import("react").ForwardRefExoticComponent<FrameRowProps & import("react").RefAttributes<View>>;
92
- Footer: import("react").ForwardRefExoticComponent<FrameFooterProps & import("react").RefAttributes<View>>;
93
95
  };
94
96
  export {};
95
97
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/frame/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAsD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3F,OAAO,EAEL,IAAI,EACJ,KAAK,cAAc,EACnB,KAAK,IAAI,IAAI,MAAM,EACnB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,0BAAuB,CAAC;AAsB7D,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;AAE/C,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AASD,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA+BD,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA6BD;;;;GAIG;AACH,UAAU,SAAS;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAkBD,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAeD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,SAAS;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA8CD,MAAM,WAAW,iBAAkB,SAAQ,UAAU,EAAE,SAAS;IAC9D,2DAA2D;IAC3D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAkCD,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAsBD,eAAO,MAAM,KAAK;;;;;;;;;CAShB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/frame/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,EAAsD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3F,OAAO,EAEL,IAAI,EACJ,KAAK,cAAc,EACnB,KAAK,IAAI,IAAI,MAAM,EACnB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,0BAAuB,CAAC;AA+B7D,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;AAE/C,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AASD,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA8BD,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA6BD;;;;GAIG;AACH,UAAU,SAAS;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAkBD,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAeD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,SAAS;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA8CD,MAAM,WAAW,iBAAkB,SAAQ,UAAU,EAAE,SAAS;IAC9D,2DAA2D;IAC3D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAkCD,eAAO,MAAM,KAAK;;;;;;;;CAQhB,CAAC"}