@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.
Files changed (131) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +16 -0
  3. package/dist/components/ActionRow.d.ts +11 -0
  4. package/dist/components/ActionRow.d.ts.map +1 -0
  5. package/dist/components/ActionRow.js +18 -0
  6. package/dist/components/ActionRow.js.map +1 -0
  7. package/dist/components/Avatar.d.ts +9 -0
  8. package/dist/components/Avatar.d.ts.map +1 -0
  9. package/dist/components/Avatar.js +34 -0
  10. package/dist/components/Avatar.js.map +1 -0
  11. package/dist/components/Badge.d.ts +10 -0
  12. package/dist/components/Badge.d.ts.map +1 -0
  13. package/dist/components/Badge.js +38 -0
  14. package/dist/components/Badge.js.map +1 -0
  15. package/dist/components/Button.d.ts +12 -0
  16. package/dist/components/Button.d.ts.map +1 -0
  17. package/dist/components/Button.js +52 -0
  18. package/dist/components/Button.js.map +1 -0
  19. package/dist/components/Card.d.ts +9 -0
  20. package/dist/components/Card.d.ts.map +1 -0
  21. package/dist/components/Card.js +23 -0
  22. package/dist/components/Card.js.map +1 -0
  23. package/dist/components/Checkbox.d.ts +11 -0
  24. package/dist/components/Checkbox.d.ts.map +1 -0
  25. package/dist/components/Checkbox.js +40 -0
  26. package/dist/components/Checkbox.js.map +1 -0
  27. package/dist/components/EmptyState.d.ts +11 -0
  28. package/dist/components/EmptyState.d.ts.map +1 -0
  29. package/dist/components/EmptyState.js +33 -0
  30. package/dist/components/EmptyState.js.map +1 -0
  31. package/dist/components/FormSection.d.ts +12 -0
  32. package/dist/components/FormSection.d.ts.map +1 -0
  33. package/dist/components/FormSection.js +19 -0
  34. package/dist/components/FormSection.js.map +1 -0
  35. package/dist/components/Heading.d.ts +12 -0
  36. package/dist/components/Heading.d.ts.map +1 -0
  37. package/dist/components/Heading.js +6 -0
  38. package/dist/components/Heading.js.map +1 -0
  39. package/dist/components/IconButton.d.ts +13 -0
  40. package/dist/components/IconButton.d.ts.map +1 -0
  41. package/dist/components/IconButton.js +60 -0
  42. package/dist/components/IconButton.js.map +1 -0
  43. package/dist/components/InlineMessage.d.ts +7 -0
  44. package/dist/components/InlineMessage.d.ts.map +1 -0
  45. package/dist/components/InlineMessage.js +29 -0
  46. package/dist/components/InlineMessage.js.map +1 -0
  47. package/dist/components/ListItem.d.ts +12 -0
  48. package/dist/components/ListItem.d.ts.map +1 -0
  49. package/dist/components/ListItem.js +35 -0
  50. package/dist/components/ListItem.js.map +1 -0
  51. package/dist/components/ListSection.d.ts +12 -0
  52. package/dist/components/ListSection.d.ts.map +1 -0
  53. package/dist/components/ListSection.js +15 -0
  54. package/dist/components/ListSection.js.map +1 -0
  55. package/dist/components/Modal.d.ts +11 -0
  56. package/dist/components/Modal.d.ts.map +1 -0
  57. package/dist/components/Modal.js +39 -0
  58. package/dist/components/Modal.js.map +1 -0
  59. package/dist/components/PickerField.d.ts +15 -0
  60. package/dist/components/PickerField.d.ts.map +1 -0
  61. package/dist/components/PickerField.js +45 -0
  62. package/dist/components/PickerField.js.map +1 -0
  63. package/dist/components/RadioGroup.d.ts +17 -0
  64. package/dist/components/RadioGroup.d.ts.map +1 -0
  65. package/dist/components/RadioGroup.js +51 -0
  66. package/dist/components/RadioGroup.js.map +1 -0
  67. package/dist/components/Screen.d.ts +17 -0
  68. package/dist/components/Screen.d.ts.map +1 -0
  69. package/dist/components/Screen.js +38 -0
  70. package/dist/components/Screen.js.map +1 -0
  71. package/dist/components/ScreenHeader.d.ts +9 -0
  72. package/dist/components/ScreenHeader.d.ts.map +1 -0
  73. package/dist/components/ScreenHeader.js +37 -0
  74. package/dist/components/ScreenHeader.js.map +1 -0
  75. package/dist/components/Section.d.ts +12 -0
  76. package/dist/components/Section.d.ts.map +1 -0
  77. package/dist/components/Section.js +27 -0
  78. package/dist/components/Section.js.map +1 -0
  79. package/dist/components/SegmentedControl.d.ts +13 -0
  80. package/dist/components/SegmentedControl.d.ts.map +1 -0
  81. package/dist/components/SegmentedControl.js +37 -0
  82. package/dist/components/SegmentedControl.js.map +1 -0
  83. package/dist/components/Stack.d.ts +13 -0
  84. package/dist/components/Stack.d.ts.map +1 -0
  85. package/dist/components/Stack.js +22 -0
  86. package/dist/components/Stack.js.map +1 -0
  87. package/dist/components/Switch.d.ts +11 -0
  88. package/dist/components/Switch.d.ts.map +1 -0
  89. package/dist/components/Switch.js +29 -0
  90. package/dist/components/Switch.js.map +1 -0
  91. package/dist/components/Text.d.ts +12 -0
  92. package/dist/components/Text.d.ts.map +1 -0
  93. package/dist/components/Text.js +25 -0
  94. package/dist/components/Text.js.map +1 -0
  95. package/dist/components/TextArea.d.ts +11 -0
  96. package/dist/components/TextArea.d.ts.map +1 -0
  97. package/dist/components/TextArea.js +57 -0
  98. package/dist/components/TextArea.js.map +1 -0
  99. package/dist/components/TextField.d.ts +11 -0
  100. package/dist/components/TextField.d.ts.map +1 -0
  101. package/dist/components/TextField.js +58 -0
  102. package/dist/components/TextField.js.map +1 -0
  103. package/dist/components/index.d.ts +26 -0
  104. package/dist/components/index.d.ts.map +1 -0
  105. package/dist/components/index.js +26 -0
  106. package/dist/components/index.js.map +1 -0
  107. package/dist/contracts.d.ts +63 -0
  108. package/dist/contracts.d.ts.map +1 -0
  109. package/dist/contracts.js +61 -0
  110. package/dist/contracts.js.map +1 -0
  111. package/dist/helpers.d.ts +9 -0
  112. package/dist/helpers.d.ts.map +1 -0
  113. package/dist/helpers.js +28 -0
  114. package/dist/helpers.js.map +1 -0
  115. package/dist/index.d.ts +8 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +8 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/layout.d.ts +36 -0
  120. package/dist/layout.d.ts.map +1 -0
  121. package/dist/layout.js +94 -0
  122. package/dist/layout.js.map +1 -0
  123. package/dist/theme.d.ts +39 -0
  124. package/dist/theme.d.ts.map +1 -0
  125. package/dist/theme.js +53 -0
  126. package/dist/theme.js.map +1 -0
  127. package/dist/tokens.d.ts +345 -0
  128. package/dist/tokens.d.ts.map +1 -0
  129. package/dist/tokens.js +126 -0
  130. package/dist/tokens.js.map +1 -0
  131. 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"}