@framingui/react-native 0.1.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/LICENSE +21 -0
- package/README.md +16 -0
- package/dist/components/ActionRow.d.ts +11 -0
- package/dist/components/ActionRow.d.ts.map +1 -0
- package/dist/components/ActionRow.js +18 -0
- package/dist/components/ActionRow.js.map +1 -0
- package/dist/components/Avatar.d.ts +9 -0
- package/dist/components/Avatar.d.ts.map +1 -0
- package/dist/components/Avatar.js +34 -0
- package/dist/components/Avatar.js.map +1 -0
- package/dist/components/Badge.d.ts +10 -0
- package/dist/components/Badge.d.ts.map +1 -0
- package/dist/components/Badge.js +38 -0
- package/dist/components/Badge.js.map +1 -0
- package/dist/components/Button.d.ts +12 -0
- package/dist/components/Button.d.ts.map +1 -0
- package/dist/components/Button.js +52 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/Card.d.ts +9 -0
- package/dist/components/Card.d.ts.map +1 -0
- package/dist/components/Card.js +23 -0
- package/dist/components/Card.js.map +1 -0
- package/dist/components/Checkbox.d.ts +11 -0
- package/dist/components/Checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox.js +40 -0
- package/dist/components/Checkbox.js.map +1 -0
- package/dist/components/EmptyState.d.ts +11 -0
- package/dist/components/EmptyState.d.ts.map +1 -0
- package/dist/components/EmptyState.js +33 -0
- package/dist/components/EmptyState.js.map +1 -0
- package/dist/components/FormSection.d.ts +12 -0
- package/dist/components/FormSection.d.ts.map +1 -0
- package/dist/components/FormSection.js +19 -0
- package/dist/components/FormSection.js.map +1 -0
- package/dist/components/Heading.d.ts +12 -0
- package/dist/components/Heading.d.ts.map +1 -0
- package/dist/components/Heading.js +6 -0
- package/dist/components/Heading.js.map +1 -0
- package/dist/components/IconButton.d.ts +13 -0
- package/dist/components/IconButton.d.ts.map +1 -0
- package/dist/components/IconButton.js +60 -0
- package/dist/components/IconButton.js.map +1 -0
- package/dist/components/InlineMessage.d.ts +7 -0
- package/dist/components/InlineMessage.d.ts.map +1 -0
- package/dist/components/InlineMessage.js +29 -0
- package/dist/components/InlineMessage.js.map +1 -0
- package/dist/components/ListItem.d.ts +12 -0
- package/dist/components/ListItem.d.ts.map +1 -0
- package/dist/components/ListItem.js +35 -0
- package/dist/components/ListItem.js.map +1 -0
- package/dist/components/ListSection.d.ts +12 -0
- package/dist/components/ListSection.d.ts.map +1 -0
- package/dist/components/ListSection.js +15 -0
- package/dist/components/ListSection.js.map +1 -0
- package/dist/components/Modal.d.ts +11 -0
- package/dist/components/Modal.d.ts.map +1 -0
- package/dist/components/Modal.js +39 -0
- package/dist/components/Modal.js.map +1 -0
- package/dist/components/PickerField.d.ts +15 -0
- package/dist/components/PickerField.d.ts.map +1 -0
- package/dist/components/PickerField.js +45 -0
- package/dist/components/PickerField.js.map +1 -0
- package/dist/components/RadioGroup.d.ts +17 -0
- package/dist/components/RadioGroup.d.ts.map +1 -0
- package/dist/components/RadioGroup.js +51 -0
- package/dist/components/RadioGroup.js.map +1 -0
- package/dist/components/Screen.d.ts +17 -0
- package/dist/components/Screen.d.ts.map +1 -0
- package/dist/components/Screen.js +38 -0
- package/dist/components/Screen.js.map +1 -0
- package/dist/components/ScreenHeader.d.ts +9 -0
- package/dist/components/ScreenHeader.d.ts.map +1 -0
- package/dist/components/ScreenHeader.js +37 -0
- package/dist/components/ScreenHeader.js.map +1 -0
- package/dist/components/Section.d.ts +12 -0
- package/dist/components/Section.d.ts.map +1 -0
- package/dist/components/Section.js +27 -0
- package/dist/components/Section.js.map +1 -0
- package/dist/components/SegmentedControl.d.ts +13 -0
- package/dist/components/SegmentedControl.d.ts.map +1 -0
- package/dist/components/SegmentedControl.js +37 -0
- package/dist/components/SegmentedControl.js.map +1 -0
- package/dist/components/Stack.d.ts +13 -0
- package/dist/components/Stack.d.ts.map +1 -0
- package/dist/components/Stack.js +22 -0
- package/dist/components/Stack.js.map +1 -0
- package/dist/components/Switch.d.ts +11 -0
- package/dist/components/Switch.d.ts.map +1 -0
- package/dist/components/Switch.js +29 -0
- package/dist/components/Switch.js.map +1 -0
- package/dist/components/Text.d.ts +12 -0
- package/dist/components/Text.d.ts.map +1 -0
- package/dist/components/Text.js +25 -0
- package/dist/components/Text.js.map +1 -0
- package/dist/components/TextArea.d.ts +11 -0
- package/dist/components/TextArea.d.ts.map +1 -0
- package/dist/components/TextArea.js +57 -0
- package/dist/components/TextArea.js.map +1 -0
- package/dist/components/TextField.d.ts +11 -0
- package/dist/components/TextField.d.ts.map +1 -0
- package/dist/components/TextField.js +58 -0
- package/dist/components/TextField.js.map +1 -0
- package/dist/components/index.d.ts +26 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +26 -0
- package/dist/components/index.js.map +1 -0
- package/dist/contracts.d.ts +63 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +61 -0
- package/dist/contracts.js.map +1 -0
- package/dist/helpers.d.ts +9 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +28 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/layout.d.ts +36 -0
- package/dist/layout.d.ts.map +1 -0
- package/dist/layout.js +94 -0
- package/dist/layout.js.map +1 -0
- package/dist/theme.d.ts +39 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +53 -0
- package/dist/theme.js.map +1 -0
- package/dist/tokens.d.ts +345 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +126 -0
- package/dist/tokens.js.map +1 -0
- package/package.json +67 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Tekton Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# @framingui/react-native
|
|
2
|
+
|
|
3
|
+
React Native runtime primitives and token consumption helpers for FramingUI.
|
|
4
|
+
|
|
5
|
+
This package is intentionally minimal in its first phase. It is designed to support Expo and React Native direct-write workflows with:
|
|
6
|
+
|
|
7
|
+
- typed token access
|
|
8
|
+
- `StyleSheet.create`-friendly helpers
|
|
9
|
+
- a small set of generic runtime primitives
|
|
10
|
+
|
|
11
|
+
Current status:
|
|
12
|
+
|
|
13
|
+
- package scaffolded
|
|
14
|
+
- helper and primitive extraction tracked by `SPEC-RN-001`
|
|
15
|
+
|
|
16
|
+
This package is not intended to mirror `@framingui/ui` feature-for-feature.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { StyleProp, ViewStyle } from 'react-native';
|
|
3
|
+
import { type SectionGapToken } from '../layout.js';
|
|
4
|
+
export interface ActionRowProps {
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
gap?: SectionGapToken;
|
|
7
|
+
align?: ViewStyle['justifyContent'];
|
|
8
|
+
style?: StyleProp<ViewStyle>;
|
|
9
|
+
}
|
|
10
|
+
export declare function ActionRow({ children, gap, align, style, }: ActionRowProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=ActionRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionRow.d.ts","sourceRoot":"","sources":["../../src/components/ActionRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,SAAS,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAGxE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,GAAa,EACb,KAAoB,EACpB,KAAK,GACN,EAAE,cAAc,2CAKhB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { StyleSheet, View } from 'react-native';
|
|
3
|
+
import { getSectionGapStyle } from '../layout.js';
|
|
4
|
+
import { useTheme } from '../theme.js';
|
|
5
|
+
export function ActionRow({ children, gap = 'tight', align = 'flex-start', style, }) {
|
|
6
|
+
const theme = useTheme();
|
|
7
|
+
const gapStyle = getSectionGapStyle(gap, theme);
|
|
8
|
+
return _jsx(View, { style: [styles.base, gapStyle, { justifyContent: align }, style], children: children });
|
|
9
|
+
}
|
|
10
|
+
const styles = StyleSheet.create({
|
|
11
|
+
base: {
|
|
12
|
+
alignItems: 'center',
|
|
13
|
+
flexDirection: 'row',
|
|
14
|
+
flexWrap: 'wrap',
|
|
15
|
+
width: '100%',
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=ActionRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionRow.js","sourceRoot":"","sources":["../../src/components/ActionRow.tsx"],"names":[],"mappings":";AACA,OAAO,EAAa,UAAU,EAAE,IAAI,EAAa,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAwB,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AASvC,MAAM,UAAU,SAAS,CAAC,EACxB,QAAQ,EACR,GAAG,GAAG,OAAO,EACb,KAAK,GAAG,YAAY,EACpB,KAAK,GACU;IACf,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAEhD,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,YAAG,QAAQ,GAAQ,CAAC;AACnG,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE;QACJ,UAAU,EAAE,QAAQ;QACpB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,MAAM;KACd;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { StyleProp, ViewStyle } from 'react-native';
|
|
2
|
+
export type AvatarSize = 'sm' | 'md' | 'lg';
|
|
3
|
+
export interface AvatarProps {
|
|
4
|
+
initials: string;
|
|
5
|
+
size?: AvatarSize;
|
|
6
|
+
style?: StyleProp<ViewStyle>;
|
|
7
|
+
}
|
|
8
|
+
export declare function Avatar({ initials, size, style }: AvatarProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=Avatar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../src/components/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAC;AAItE,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAW,EAAE,KAAK,EAAE,EAAE,WAAW,2CAiBnE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { StyleSheet, View } from 'react-native';
|
|
3
|
+
import { createThemedStyles, useTheme } from '../theme.js';
|
|
4
|
+
import { Text } from './Text.js';
|
|
5
|
+
export function Avatar({ initials, size = 'md', style }) {
|
|
6
|
+
const theme = useTheme();
|
|
7
|
+
const styles = getStyles(theme);
|
|
8
|
+
return (_jsx(View, { style: [
|
|
9
|
+
styles.base,
|
|
10
|
+
size === 'sm' ? styles.sm : size === 'lg' ? styles.lg : styles.md,
|
|
11
|
+
style,
|
|
12
|
+
], children: _jsx(Text, { tone: "accent", variant: "label", children: initials }) }));
|
|
13
|
+
}
|
|
14
|
+
const getStyles = createThemedStyles(theme => StyleSheet.create({
|
|
15
|
+
base: {
|
|
16
|
+
alignItems: 'center',
|
|
17
|
+
backgroundColor: theme.colors.background.subtle,
|
|
18
|
+
borderRadius: theme.radius.full,
|
|
19
|
+
justifyContent: 'center',
|
|
20
|
+
},
|
|
21
|
+
sm: {
|
|
22
|
+
height: 32,
|
|
23
|
+
width: 32,
|
|
24
|
+
},
|
|
25
|
+
md: {
|
|
26
|
+
height: 44,
|
|
27
|
+
width: 44,
|
|
28
|
+
},
|
|
29
|
+
lg: {
|
|
30
|
+
height: 56,
|
|
31
|
+
width: 56,
|
|
32
|
+
},
|
|
33
|
+
}));
|
|
34
|
+
//# sourceMappingURL=Avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../../src/components/Avatar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAa,UAAU,EAAE,IAAI,EAAa,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAUjC,MAAM,UAAU,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,EAAe;IAClE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEhC,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAE;YACL,MAAM,CAAC,IAAI;YACX,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;YACjE,KAAK;SACN,YAED,KAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,YAChC,QAAQ,GACJ,GACF,CACR,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAC3C,UAAU,CAAC,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,UAAU,EAAE,QAAQ;QACpB,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM;QAC/C,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;QAC/B,cAAc,EAAE,QAAQ;KACzB;IACD,EAAE,EAAE;QACF,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;KACV;IACD,EAAE,EAAE;QACF,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;KACV;IACD,EAAE,EAAE;QACF,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;KACV;CACF,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { StyleProp, ViewStyle } from 'react-native';
|
|
3
|
+
export type BadgeTone = 'neutral' | 'accent' | 'danger';
|
|
4
|
+
export interface BadgeProps {
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
tone?: BadgeTone;
|
|
7
|
+
style?: StyleProp<ViewStyle>;
|
|
8
|
+
}
|
|
9
|
+
export declare function Badge({ children, tone, style }: BadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=Badge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../src/components/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,SAAS,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAC;AAItE,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAgB,EAAE,KAAK,EAAE,EAAE,UAAU,2CAoBtE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { StyleSheet, View } from 'react-native';
|
|
3
|
+
import { createThemedStyles, useTheme } from '../theme.js';
|
|
4
|
+
import { Text } from './Text.js';
|
|
5
|
+
export function Badge({ children, tone = 'neutral', style }) {
|
|
6
|
+
const theme = useTheme();
|
|
7
|
+
const styles = getStyles(theme);
|
|
8
|
+
return (_jsx(View, { style: [
|
|
9
|
+
styles.base,
|
|
10
|
+
tone === 'accent' ? styles.accent : tone === 'danger' ? styles.danger : styles.neutral,
|
|
11
|
+
style,
|
|
12
|
+
], children: _jsx(Text, { tone: tone === 'danger' ? 'danger' : tone === 'accent' ? 'accent' : 'secondary', variant: "label", children: children }) }));
|
|
13
|
+
}
|
|
14
|
+
const getStyles = createThemedStyles(theme => StyleSheet.create({
|
|
15
|
+
base: {
|
|
16
|
+
alignItems: 'center',
|
|
17
|
+
alignSelf: 'flex-start',
|
|
18
|
+
borderRadius: theme.radius.full,
|
|
19
|
+
justifyContent: 'center',
|
|
20
|
+
minHeight: 28,
|
|
21
|
+
paddingHorizontal: theme.spacing[3],
|
|
22
|
+
paddingVertical: theme.spacing[1],
|
|
23
|
+
},
|
|
24
|
+
neutral: {
|
|
25
|
+
backgroundColor: theme.colors.background.subtle,
|
|
26
|
+
},
|
|
27
|
+
accent: {
|
|
28
|
+
backgroundColor: theme.colors.background.subtle,
|
|
29
|
+
borderColor: theme.colors.border.accent,
|
|
30
|
+
borderWidth: 1,
|
|
31
|
+
},
|
|
32
|
+
danger: {
|
|
33
|
+
backgroundColor: theme.colors.surface.danger,
|
|
34
|
+
borderColor: theme.colors.border.danger,
|
|
35
|
+
borderWidth: 1,
|
|
36
|
+
},
|
|
37
|
+
}));
|
|
38
|
+
//# sourceMappingURL=Badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../src/components/Badge.tsx"],"names":[],"mappings":";AACA,OAAO,EAAa,UAAU,EAAE,IAAI,EAAa,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAUjC,MAAM,UAAU,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,SAAS,EAAE,KAAK,EAAc;IACrE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEhC,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAE;YACL,MAAM,CAAC,IAAI;YACX,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO;YACtF,KAAK;SACN,YAED,KAAC,IAAI,IACH,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAC/E,OAAO,EAAC,OAAO,YAEd,QAAQ,GACJ,GACF,CACR,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAC3C,UAAU,CAAC,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,UAAU,EAAE,QAAQ;QACpB,SAAS,EAAE,YAAY;QACvB,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;QAC/B,cAAc,EAAE,QAAQ;QACxB,SAAS,EAAE,EAAE;QACb,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACnC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KAClC;IACD,OAAO,EAAE;QACP,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM;KAChD;IACD,MAAM,EAAE;QACN,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM;QAC/C,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;QACvC,WAAW,EAAE,CAAC;KACf;IACD,MAAM,EAAE;QACN,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;QAC5C,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;QACvC,WAAW,EAAE,CAAC;KACf;CACF,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { StyleProp, ViewStyle } from 'react-native';
|
|
2
|
+
export type ButtonVariant = 'primary' | 'secondary';
|
|
3
|
+
export interface ButtonProps {
|
|
4
|
+
label: string;
|
|
5
|
+
onPress?: () => void;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
loading?: boolean;
|
|
8
|
+
variant?: ButtonVariant;
|
|
9
|
+
style?: StyleProp<ViewStyle>;
|
|
10
|
+
}
|
|
11
|
+
export declare function Button({ label, onPress, disabled, loading, variant, style, }: ButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=Button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgC,SAAS,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAC;AAGpG,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,OAAO,EACP,QAAgB,EAChB,OAAe,EACf,OAAmB,EACnB,KAAK,GACN,EAAE,WAAW,2CA6Bb"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { ActivityIndicator, Pressable, StyleSheet, Text } from 'react-native';
|
|
3
|
+
import { createThemedStyles, useTheme } from '../theme.js';
|
|
4
|
+
export function Button({ label, onPress, disabled = false, loading = false, variant = 'primary', style, }) {
|
|
5
|
+
const theme = useTheme();
|
|
6
|
+
const styles = getStyles(theme);
|
|
7
|
+
const isDisabled = disabled || loading;
|
|
8
|
+
const isSecondary = variant === 'secondary';
|
|
9
|
+
return (_jsx(Pressable, { accessibilityRole: "button", accessibilityState: { busy: loading, disabled: isDisabled }, disabled: isDisabled, onPress: onPress, style: ({ pressed }) => [
|
|
10
|
+
styles.base,
|
|
11
|
+
isSecondary ? styles.secondary : styles.primary,
|
|
12
|
+
pressed && !isDisabled && (isSecondary ? styles.secondaryPressed : styles.primaryPressed),
|
|
13
|
+
isDisabled && styles.disabled,
|
|
14
|
+
style,
|
|
15
|
+
], children: loading ? (_jsx(ActivityIndicator, { color: isSecondary ? theme.colors.text.primary : theme.colors.text.inverse })) : (_jsx(Text, { style: [styles.text, isSecondary && styles.secondaryText], children: label })) }));
|
|
16
|
+
}
|
|
17
|
+
const getStyles = createThemedStyles(theme => StyleSheet.create({
|
|
18
|
+
base: {
|
|
19
|
+
alignItems: 'center',
|
|
20
|
+
borderRadius: theme.radius.md,
|
|
21
|
+
justifyContent: 'center',
|
|
22
|
+
minHeight: 52,
|
|
23
|
+
paddingHorizontal: theme.spacing[4],
|
|
24
|
+
paddingVertical: theme.spacing[3],
|
|
25
|
+
},
|
|
26
|
+
primary: {
|
|
27
|
+
backgroundColor: theme.colors.action.primary,
|
|
28
|
+
},
|
|
29
|
+
secondary: {
|
|
30
|
+
backgroundColor: theme.colors.surface.muted,
|
|
31
|
+
borderColor: theme.colors.border.default,
|
|
32
|
+
borderWidth: 1,
|
|
33
|
+
},
|
|
34
|
+
primaryPressed: {
|
|
35
|
+
backgroundColor: theme.colors.action.primaryPressed,
|
|
36
|
+
},
|
|
37
|
+
secondaryPressed: {
|
|
38
|
+
backgroundColor: theme.colors.background.subtle,
|
|
39
|
+
},
|
|
40
|
+
disabled: {
|
|
41
|
+
backgroundColor: theme.colors.action.primaryDisabled,
|
|
42
|
+
borderColor: theme.colors.action.primaryDisabled,
|
|
43
|
+
},
|
|
44
|
+
text: {
|
|
45
|
+
...theme.typography.button,
|
|
46
|
+
color: theme.colors.text.inverse,
|
|
47
|
+
},
|
|
48
|
+
secondaryText: {
|
|
49
|
+
color: theme.colors.text.primary,
|
|
50
|
+
},
|
|
51
|
+
}));
|
|
52
|
+
//# sourceMappingURL=Button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { StyleProp, ViewStyle } from 'react-native';
|
|
3
|
+
export interface CardProps {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
elevated?: boolean;
|
|
6
|
+
style?: StyleProp<ViewStyle>;
|
|
7
|
+
}
|
|
8
|
+
export declare function Card({ children, elevated, style }: CardProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=Card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../src/components/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,SAAS,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAC;AAGtE,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAe,EAAE,KAAK,EAAE,EAAE,SAAS,2CAKnE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { StyleSheet, View } from 'react-native';
|
|
3
|
+
import { createThemedStyles, useTheme } from '../theme.js';
|
|
4
|
+
export function Card({ children, elevated = true, style }) {
|
|
5
|
+
const theme = useTheme();
|
|
6
|
+
const styles = getStyles(theme);
|
|
7
|
+
return _jsx(View, { style: [styles.base, elevated && styles.elevated, style], children: children });
|
|
8
|
+
}
|
|
9
|
+
const getStyles = createThemedStyles(theme => StyleSheet.create({
|
|
10
|
+
base: {
|
|
11
|
+
backgroundColor: theme.colors.surface.base,
|
|
12
|
+
borderColor: theme.colors.border.subtle,
|
|
13
|
+
borderRadius: theme.radius.lg,
|
|
14
|
+
borderWidth: 1,
|
|
15
|
+
gap: theme.spacing[3],
|
|
16
|
+
padding: theme.spacing[4],
|
|
17
|
+
width: '100%',
|
|
18
|
+
},
|
|
19
|
+
elevated: {
|
|
20
|
+
...theme.shadows.card,
|
|
21
|
+
},
|
|
22
|
+
}));
|
|
23
|
+
//# sourceMappingURL=Card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.js","sourceRoot":"","sources":["../../src/components/Card.tsx"],"names":[],"mappings":";AACA,OAAO,EAAa,UAAU,EAAE,IAAI,EAAa,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQ3D,MAAM,UAAU,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,EAAa;IAClE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEhC,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAG,QAAQ,GAAQ,CAAC;AAC3F,CAAC;AAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAC3C,UAAU,CAAC,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;QAC1C,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;QACvC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;QAC7B,WAAW,EAAE,CAAC;QACd,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACrB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACzB,KAAK,EAAE,MAAM;KACd;IACD,QAAQ,EAAE;QACR,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI;KACtB;CACF,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { StyleProp, ViewStyle } from 'react-native';
|
|
2
|
+
export interface CheckboxProps {
|
|
3
|
+
label: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
checked?: boolean;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
onPress?: () => void;
|
|
8
|
+
style?: StyleProp<ViewStyle>;
|
|
9
|
+
}
|
|
10
|
+
export declare function Checkbox({ label, description, checked, disabled, onPress, style, }: CheckboxProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=Checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../src/components/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAC;AAIjF,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,WAAW,EACX,OAAe,EACf,QAAgB,EAChB,OAAO,EACP,KAAK,GACN,EAAE,aAAa,2CA6Bf"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Pressable, StyleSheet, View } from 'react-native';
|
|
3
|
+
import { createThemedStyles, useTheme } from '../theme.js';
|
|
4
|
+
import { Text } from './Text.js';
|
|
5
|
+
export function Checkbox({ label, description, checked = false, disabled = false, onPress, style, }) {
|
|
6
|
+
const theme = useTheme();
|
|
7
|
+
const styles = getStyles(theme);
|
|
8
|
+
return (_jsxs(Pressable, { accessibilityRole: "checkbox", accessibilityState: { checked, disabled }, disabled: disabled, onPress: onPress, style: [styles.base, disabled && styles.disabled, style], children: [_jsx(View, { style: [styles.box, checked && styles.boxChecked], children: checked ? (_jsx(Text, { tone: checked ? 'inverse' : 'primary', variant: "label", children: "\u2713" })) : null }), _jsxs(View, { style: styles.copy, children: [_jsx(Text, { variant: "bodyStrong", children: label }), description ? (_jsx(Text, { tone: "secondary", variant: "caption", children: description })) : null] })] }));
|
|
9
|
+
}
|
|
10
|
+
const getStyles = createThemedStyles(theme => StyleSheet.create({
|
|
11
|
+
base: {
|
|
12
|
+
alignItems: 'flex-start',
|
|
13
|
+
flexDirection: 'row',
|
|
14
|
+
gap: theme.spacing[3],
|
|
15
|
+
width: '100%',
|
|
16
|
+
},
|
|
17
|
+
disabled: {
|
|
18
|
+
opacity: 0.6,
|
|
19
|
+
},
|
|
20
|
+
box: {
|
|
21
|
+
alignItems: 'center',
|
|
22
|
+
backgroundColor: theme.colors.surface.base,
|
|
23
|
+
borderColor: theme.colors.border.default,
|
|
24
|
+
borderRadius: theme.radius.sm,
|
|
25
|
+
borderWidth: 1,
|
|
26
|
+
height: 24,
|
|
27
|
+
justifyContent: 'center',
|
|
28
|
+
marginTop: 2,
|
|
29
|
+
width: 24,
|
|
30
|
+
},
|
|
31
|
+
boxChecked: {
|
|
32
|
+
backgroundColor: theme.colors.action.primary,
|
|
33
|
+
borderColor: theme.colors.action.primary,
|
|
34
|
+
},
|
|
35
|
+
copy: {
|
|
36
|
+
flex: 1,
|
|
37
|
+
gap: theme.spacing[1],
|
|
38
|
+
},
|
|
39
|
+
}));
|
|
40
|
+
//# sourceMappingURL=Checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../src/components/Checkbox.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAa,UAAU,EAAE,IAAI,EAAa,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAWjC,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,EACL,WAAW,EACX,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,OAAO,EACP,KAAK,GACS;IACd,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEhC,OAAO,CACL,MAAC,SAAS,IACR,iBAAiB,EAAC,UAAU,EAC5B,kBAAkB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EACzC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,aAExD,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,YACpD,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,IAAI,IAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAC,OAAO,uBAErD,CACR,CAAC,CAAC,CAAC,IAAI,GACH,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,aACtB,KAAC,IAAI,IAAC,OAAO,EAAC,YAAY,YAAE,KAAK,GAAQ,EACxC,WAAW,CAAC,CAAC,CAAC,CACb,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,SAAS,YACrC,WAAW,GACP,CACR,CAAC,CAAC,CAAC,IAAI,IACH,IACG,CACb,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAC3C,UAAU,CAAC,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,UAAU,EAAE,YAAY;QACxB,aAAa,EAAE,KAAK;QACpB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACrB,KAAK,EAAE,MAAM;KACd;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,GAAG;KACb;IACD,GAAG,EAAE;QACH,UAAU,EAAE,QAAQ;QACpB,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;QAC1C,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;QACxC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;QAC7B,WAAW,EAAE,CAAC;QACd,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,QAAQ;QACxB,SAAS,EAAE,CAAC;QACZ,KAAK,EAAE,EAAE;KACV;IACD,UAAU,EAAE;QACV,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;QAC5C,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;KACzC;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KACtB;CACF,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { StyleProp, ViewStyle } from 'react-native';
|
|
3
|
+
export interface EmptyStateProps {
|
|
4
|
+
title: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
action?: ReactNode;
|
|
7
|
+
icon?: ReactNode;
|
|
8
|
+
style?: StyleProp<ViewStyle>;
|
|
9
|
+
}
|
|
10
|
+
export declare function EmptyState({ title, description, action, icon, style }: EmptyStateProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=EmptyState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../src/components/EmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,SAAS,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAC;AAItE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,eAAe,2CAkBtF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { StyleSheet, View } from 'react-native';
|
|
3
|
+
import { createThemedStyles, useTheme } from '../theme.js';
|
|
4
|
+
import { Text } from './Text.js';
|
|
5
|
+
export function EmptyState({ title, description, action, icon, style }) {
|
|
6
|
+
const theme = useTheme();
|
|
7
|
+
const styles = getStyles(theme);
|
|
8
|
+
return (_jsxs(View, { style: [styles.base, style], children: [icon ? _jsx(View, { style: styles.icon, children: icon }) : null, _jsxs(View, { style: styles.copy, children: [_jsx(Text, { variant: "sectionTitle", children: title }), description ? (_jsx(Text, { tone: "secondary", variant: "body", children: description })) : null] }), action ? _jsx(View, { style: styles.action, children: action }) : null] }));
|
|
9
|
+
}
|
|
10
|
+
const getStyles = createThemedStyles(theme => StyleSheet.create({
|
|
11
|
+
base: {
|
|
12
|
+
alignItems: 'center',
|
|
13
|
+
backgroundColor: theme.colors.background.subtle,
|
|
14
|
+
borderColor: theme.colors.border.subtle,
|
|
15
|
+
borderRadius: theme.radius.lg,
|
|
16
|
+
borderWidth: 1,
|
|
17
|
+
gap: theme.spacing[4],
|
|
18
|
+
padding: theme.spacing[5],
|
|
19
|
+
width: '100%',
|
|
20
|
+
},
|
|
21
|
+
icon: {
|
|
22
|
+
alignItems: 'center',
|
|
23
|
+
justifyContent: 'center',
|
|
24
|
+
},
|
|
25
|
+
copy: {
|
|
26
|
+
alignItems: 'center',
|
|
27
|
+
gap: theme.spacing[2],
|
|
28
|
+
},
|
|
29
|
+
action: {
|
|
30
|
+
minWidth: 200,
|
|
31
|
+
},
|
|
32
|
+
}));
|
|
33
|
+
//# sourceMappingURL=EmptyState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.js","sourceRoot":"","sources":["../../src/components/EmptyState.tsx"],"names":[],"mappings":";AACA,OAAO,EAAa,UAAU,EAAE,IAAI,EAAa,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAUjC,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAmB;IACrF,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEhC,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,aAC9B,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,YAAG,IAAI,GAAQ,CAAC,CAAC,CAAC,IAAI,EACtD,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,aACtB,KAAC,IAAI,IAAC,OAAO,EAAC,cAAc,YAAE,KAAK,GAAQ,EAC1C,WAAW,CAAC,CAAC,CAAC,CACb,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,YAClC,WAAW,GACP,CACR,CAAC,CAAC,CAAC,IAAI,IACH,EACN,MAAM,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,YAAG,MAAM,GAAQ,CAAC,CAAC,CAAC,IAAI,IACvD,CACR,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAC3C,UAAU,CAAC,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,UAAU,EAAE,QAAQ;QACpB,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM;QAC/C,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;QACvC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;QAC7B,WAAW,EAAE,CAAC;QACd,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACrB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACzB,KAAK,EAAE,MAAM;KACd;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;KACzB;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,QAAQ;QACpB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KACtB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,GAAG;KACd;CACF,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { StyleProp, ViewStyle } from 'react-native';
|
|
3
|
+
import { type FormRhythmToken } from '../layout.js';
|
|
4
|
+
export interface FormSectionProps {
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
title?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
rhythm?: FormRhythmToken;
|
|
9
|
+
style?: StyleProp<ViewStyle>;
|
|
10
|
+
}
|
|
11
|
+
export declare function FormSection({ children, title, description, rhythm, style, }: FormSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=FormSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormSection.d.ts","sourceRoot":"","sources":["../../src/components/FormSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,SAAS,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAInE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,KAAK,EACL,WAAW,EACX,MAAkB,EAClB,KAAK,GACN,EAAE,gBAAgB,2CAYlB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { StyleSheet, View } from 'react-native';
|
|
3
|
+
import { getFormRhythm } from '../layout.js';
|
|
4
|
+
import { useTheme } from '../theme.js';
|
|
5
|
+
import { Section } from './Section.js';
|
|
6
|
+
export function FormSection({ children, title, description, rhythm = 'default', style, }) {
|
|
7
|
+
const theme = useTheme();
|
|
8
|
+
const formRhythm = getFormRhythm(rhythm, theme);
|
|
9
|
+
const styles = getStyles(formRhythm.fieldGap);
|
|
10
|
+
const sectionGap = rhythm === 'compact' ? 'tight' : rhythm === 'comfortable' ? 'loose' : 'default';
|
|
11
|
+
return (_jsx(Section, { description: description, gap: sectionGap, title: title, children: _jsx(View, { style: [styles.fields, style], children: children }) }));
|
|
12
|
+
}
|
|
13
|
+
const getStyles = (gap) => StyleSheet.create({
|
|
14
|
+
fields: {
|
|
15
|
+
gap,
|
|
16
|
+
width: '100%',
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=FormSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormSection.js","sourceRoot":"","sources":["../../src/components/FormSection.tsx"],"names":[],"mappings":";AACA,OAAO,EAAa,UAAU,EAAE,IAAI,EAAa,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,aAAa,EAAwB,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAUvC,MAAM,UAAU,WAAW,CAAC,EAC1B,QAAQ,EACR,KAAK,EACL,WAAW,EACX,MAAM,GAAG,SAAS,EAClB,KAAK,GACY;IACjB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,UAAU,GACd,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAElF,OAAO,CACL,KAAC,OAAO,IAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,YAC9D,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,YAAG,QAAQ,GAAQ,GAC9C,CACX,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE,CAChC,UAAU,CAAC,MAAM,CAAC;IAChB,MAAM,EAAE;QACN,GAAG;QACH,KAAK,EAAE,MAAM;KACd;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { StyleProp, TextStyle } from 'react-native';
|
|
3
|
+
import { type TextTone } from './Text.js';
|
|
4
|
+
export type HeadingLevel = 'display' | 'title' | 'sectionTitle';
|
|
5
|
+
export interface HeadingProps {
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
level?: HeadingLevel;
|
|
8
|
+
tone?: TextTone;
|
|
9
|
+
style?: StyleProp<TextStyle>;
|
|
10
|
+
}
|
|
11
|
+
export declare function Heading({ children, level, tone, style }: HeadingProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=Heading.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Heading.d.ts","sourceRoot":"","sources":["../../src/components/Heading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,cAAc,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAe,EAAE,IAAgB,EAAE,KAAK,EAAE,EAAE,YAAY,2CAM3F"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Text } from './Text.js';
|
|
3
|
+
export function Heading({ children, level = 'title', tone = 'primary', style }) {
|
|
4
|
+
return (_jsx(Text, { accessibilityRole: "header", style: style, tone: tone, variant: level, children: children }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=Heading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Heading.js","sourceRoot":"","sources":["../../src/components/Heading.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAiB,MAAM,WAAW,CAAC;AAWhD,MAAM,UAAU,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,OAAO,EAAE,IAAI,GAAG,SAAS,EAAE,KAAK,EAAgB;IAC1F,OAAO,CACL,KAAC,IAAI,IAAC,iBAAiB,EAAC,QAAQ,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,YACtE,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { StyleProp, ViewStyle } from 'react-native';
|
|
3
|
+
export type IconButtonVariant = 'primary' | 'secondary' | 'ghost';
|
|
4
|
+
export interface IconButtonProps {
|
|
5
|
+
icon: ReactNode;
|
|
6
|
+
label?: string;
|
|
7
|
+
onPress?: () => void;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
variant?: IconButtonVariant;
|
|
10
|
+
style?: StyleProp<ViewStyle>;
|
|
11
|
+
}
|
|
12
|
+
export declare function IconButton({ icon, label, onPress, disabled, variant, style, }: IconButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=IconButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../src/components/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAa,SAAS,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAC;AAIjF,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAgB,EAChB,OAAqB,EACrB,KAAK,GACN,EAAE,eAAe,2CAiCjB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Pressable, StyleSheet, View } from 'react-native';
|
|
3
|
+
import { createThemedStyles, useTheme } from '../theme.js';
|
|
4
|
+
import { Text } from './Text.js';
|
|
5
|
+
export function IconButton({ icon, label, onPress, disabled = false, variant = 'secondary', style, }) {
|
|
6
|
+
const theme = useTheme();
|
|
7
|
+
const styles = getStyles(theme);
|
|
8
|
+
return (_jsx(Pressable, { accessibilityLabel: label, accessibilityRole: "button", accessibilityState: { disabled }, disabled: disabled, onPress: onPress, style: ({ pressed }) => [
|
|
9
|
+
styles.base,
|
|
10
|
+
variant === 'primary'
|
|
11
|
+
? styles.primary
|
|
12
|
+
: variant === 'ghost'
|
|
13
|
+
? styles.ghost
|
|
14
|
+
: styles.secondary,
|
|
15
|
+
pressed && !disabled && styles.pressed,
|
|
16
|
+
disabled && styles.disabled,
|
|
17
|
+
style,
|
|
18
|
+
], children: _jsxs(View, { style: styles.content, children: [_jsx(View, { style: styles.icon, children: icon }), label ? (_jsx(Text, { tone: variant === 'primary' ? 'inverse' : 'primary', variant: "label", children: label })) : null] }) }));
|
|
19
|
+
}
|
|
20
|
+
const getStyles = createThemedStyles(theme => StyleSheet.create({
|
|
21
|
+
base: {
|
|
22
|
+
alignItems: 'center',
|
|
23
|
+
borderRadius: theme.radius.md,
|
|
24
|
+
justifyContent: 'center',
|
|
25
|
+
minHeight: 44,
|
|
26
|
+
minWidth: 44,
|
|
27
|
+
paddingHorizontal: theme.spacing[3],
|
|
28
|
+
paddingVertical: theme.spacing[2],
|
|
29
|
+
},
|
|
30
|
+
primary: {
|
|
31
|
+
backgroundColor: theme.colors.action.primary,
|
|
32
|
+
},
|
|
33
|
+
secondary: {
|
|
34
|
+
backgroundColor: theme.colors.surface.muted,
|
|
35
|
+
borderColor: theme.colors.border.default,
|
|
36
|
+
borderWidth: 1,
|
|
37
|
+
},
|
|
38
|
+
ghost: {
|
|
39
|
+
backgroundColor: 'transparent',
|
|
40
|
+
},
|
|
41
|
+
pressed: {
|
|
42
|
+
opacity: 0.8,
|
|
43
|
+
},
|
|
44
|
+
disabled: {
|
|
45
|
+
backgroundColor: theme.colors.background.subtle,
|
|
46
|
+
borderColor: theme.colors.border.subtle,
|
|
47
|
+
opacity: 0.6,
|
|
48
|
+
},
|
|
49
|
+
content: {
|
|
50
|
+
alignItems: 'center',
|
|
51
|
+
flexDirection: 'row',
|
|
52
|
+
gap: theme.spacing[2],
|
|
53
|
+
justifyContent: 'center',
|
|
54
|
+
},
|
|
55
|
+
icon: {
|
|
56
|
+
alignItems: 'center',
|
|
57
|
+
justifyContent: 'center',
|
|
58
|
+
},
|
|
59
|
+
}));
|
|
60
|
+
//# sourceMappingURL=IconButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconButton.js","sourceRoot":"","sources":["../../src/components/IconButton.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type InlineMessageTone = 'error' | 'info' | 'success';
|
|
2
|
+
export interface InlineMessageProps {
|
|
3
|
+
message: string;
|
|
4
|
+
tone?: InlineMessageTone;
|
|
5
|
+
}
|
|
6
|
+
export declare function InlineMessage({ message, tone }: InlineMessageProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=InlineMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InlineMessage.d.ts","sourceRoot":"","sources":["../../src/components/InlineMessage.tsx"],"names":[],"mappings":"AAGA,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AAED,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,IAAa,EAAE,EAAE,kBAAkB,2CAS3E"}
|