panelui-native 0.12.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.
- package/README.md +39 -23
- package/lib/module/components/button/index.js +12 -9
- package/lib/module/components/button/index.js.map +1 -1
- package/lib/module/components/chip/index.js +313 -0
- package/lib/module/components/chip/index.js.map +1 -0
- package/lib/module/components/frame/index.js +41 -39
- package/lib/module/components/frame/index.js.map +1 -1
- package/lib/module/components/heatmap-chart/index.js +772 -0
- package/lib/module/components/heatmap-chart/index.js.map +1 -0
- package/lib/module/components/input/index.js +4 -0
- package/lib/module/components/input/index.js.map +1 -1
- package/lib/module/components/scroll-canvas/index.js +175 -0
- package/lib/module/components/scroll-canvas/index.js.map +1 -0
- package/lib/module/components/scroll-text/index.js +213 -0
- package/lib/module/components/scroll-text/index.js.map +1 -0
- package/lib/module/components/select/index.js +20 -24
- package/lib/module/components/select/index.js.map +1 -1
- package/lib/module/components/slider/index.js +2 -5
- package/lib/module/components/slider/index.js.map +1 -1
- package/lib/module/components/switch/index.js +15 -17
- package/lib/module/components/switch/index.js.map +1 -1
- package/lib/module/components/thinking-orb/index.js +741 -0
- package/lib/module/components/thinking-orb/index.js.map +1 -0
- package/lib/module/components/toggle-button/index.js +12 -3
- package/lib/module/components/toggle-button/index.js.map +1 -1
- package/lib/module/hooks/index.js +1 -0
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/hooks/use-keyboard-avoidance.js +99 -59
- package/lib/module/hooks/use-keyboard-avoidance.js.map +1 -1
- package/lib/module/hooks/use-reveal-progress.js +75 -0
- package/lib/module/hooks/use-reveal-progress.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/native/index.js.map +1 -1
- package/lib/module/primitives/keyboard-avoider.js +21 -2
- package/lib/module/primitives/keyboard-avoider.js.map +1 -1
- package/lib/module/primitives/scroll-progress.js +114 -0
- package/lib/module/primitives/scroll-progress.js.map +1 -0
- package/lib/typescript/src/components/button/index.d.ts +3 -4
- package/lib/typescript/src/components/button/index.d.ts.map +1 -1
- package/lib/typescript/src/components/chip/index.d.ts +304 -0
- package/lib/typescript/src/components/chip/index.d.ts.map +1 -0
- package/lib/typescript/src/components/frame/index.d.ts +15 -13
- package/lib/typescript/src/components/frame/index.d.ts.map +1 -1
- package/lib/typescript/src/components/heatmap-chart/index.d.ts +260 -0
- package/lib/typescript/src/components/heatmap-chart/index.d.ts.map +1 -0
- package/lib/typescript/src/components/input/index.d.ts +19 -4
- package/lib/typescript/src/components/input/index.d.ts.map +1 -1
- package/lib/typescript/src/components/scroll-canvas/index.d.ts +66 -0
- package/lib/typescript/src/components/scroll-canvas/index.d.ts.map +1 -0
- package/lib/typescript/src/components/scroll-text/index.d.ts +46 -0
- package/lib/typescript/src/components/scroll-text/index.d.ts.map +1 -0
- package/lib/typescript/src/components/select/index.d.ts.map +1 -1
- package/lib/typescript/src/components/slider/index.d.ts.map +1 -1
- package/lib/typescript/src/components/switch/index.d.ts.map +1 -1
- package/lib/typescript/src/components/thinking-orb/index.d.ts +28 -0
- package/lib/typescript/src/components/thinking-orb/index.d.ts.map +1 -0
- package/lib/typescript/src/components/toggle-button/index.d.ts +12 -0
- package/lib/typescript/src/components/toggle-button/index.d.ts.map +1 -1
- package/lib/typescript/src/hooks/index.d.ts +2 -1
- package/lib/typescript/src/hooks/index.d.ts.map +1 -1
- package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts +16 -3
- package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts.map +1 -1
- package/lib/typescript/src/hooks/use-reveal-progress.d.ts +56 -0
- package/lib/typescript/src/hooks/use-reveal-progress.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +6 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/native/index.d.ts +15 -7
- package/lib/typescript/src/native/index.d.ts.map +1 -1
- package/lib/typescript/src/primitives/keyboard-avoider.d.ts +30 -3
- package/lib/typescript/src/primitives/keyboard-avoider.d.ts.map +1 -1
- package/lib/typescript/src/primitives/scroll-progress.d.ts +61 -0
- package/lib/typescript/src/primitives/scroll-progress.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/components/button/index.tsx +13 -11
- package/src/components/chip/index.tsx +333 -0
- package/src/components/frame/index.tsx +39 -50
- package/src/components/heatmap-chart/index.tsx +1024 -0
- package/src/components/input/index.tsx +23 -4
- package/src/components/scroll-canvas/index.tsx +220 -0
- package/src/components/scroll-text/index.tsx +277 -0
- package/src/components/select/index.tsx +4 -9
- package/src/components/slider/index.tsx +4 -7
- package/src/components/switch/index.tsx +5 -8
- package/src/components/thinking-orb/index.tsx +792 -0
- package/src/components/toggle-button/index.tsx +24 -2
- package/src/hooks/index.ts +6 -0
- package/src/hooks/use-keyboard-avoidance.ts +111 -65
- package/src/hooks/use-reveal-progress.ts +106 -0
- package/src/index.ts +46 -0
- package/src/native/index.ts +15 -7
- package/src/primitives/keyboard-avoider.tsx +41 -4
- 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
|
|
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
|
-
|
|
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,
|
|
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 **
|
|
224
|
-
*
|
|
225
|
-
*
|
|
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
|
|
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
|
|
3
|
-
*
|
|
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
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
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>
|
|
14
|
-
* <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
|
|
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"}
|