@indra-inter/neobrutalism-components 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 (154) hide show
  1. package/README.md +1330 -0
  2. package/dist/module/assets/avatar-profile.png +0 -0
  3. package/dist/module/components/accordion/accordion.js +203 -0
  4. package/dist/module/components/accordion/accordion.js.map +1 -0
  5. package/dist/module/components/app-bar/app-bar.js +140 -0
  6. package/dist/module/components/app-bar/app-bar.js.map +1 -0
  7. package/dist/module/components/avatar/avatar.js +184 -0
  8. package/dist/module/components/avatar/avatar.js.map +1 -0
  9. package/dist/module/components/badge/badge.js +133 -0
  10. package/dist/module/components/badge/badge.js.map +1 -0
  11. package/dist/module/components/bottom-navigation/bottom-navigation.js +166 -0
  12. package/dist/module/components/bottom-navigation/bottom-navigation.js.map +1 -0
  13. package/dist/module/components/bottom-sheet/bottom-sheet.js +285 -0
  14. package/dist/module/components/bottom-sheet/bottom-sheet.js.map +1 -0
  15. package/dist/module/components/button/button.js +253 -0
  16. package/dist/module/components/button/button.js.map +1 -0
  17. package/dist/module/components/calendar/calendar.js +458 -0
  18. package/dist/module/components/calendar/calendar.js.map +1 -0
  19. package/dist/module/components/call-item/call-item.js +128 -0
  20. package/dist/module/components/call-item/call-item.js.map +1 -0
  21. package/dist/module/components/card/card.js +189 -0
  22. package/dist/module/components/card/card.js.map +1 -0
  23. package/dist/module/components/chat-list-item/chat-list-item.js +212 -0
  24. package/dist/module/components/chat-list-item/chat-list-item.js.map +1 -0
  25. package/dist/module/components/checkbox/checkbox.js +141 -0
  26. package/dist/module/components/checkbox/checkbox.js.map +1 -0
  27. package/dist/module/components/dialog/dialog.js +342 -0
  28. package/dist/module/components/dialog/dialog.js.map +1 -0
  29. package/dist/module/components/divider/divider.js +41 -0
  30. package/dist/module/components/divider/divider.js.map +1 -0
  31. package/dist/module/components/dropdown/dropdown-menu.js +214 -0
  32. package/dist/module/components/dropdown/dropdown-menu.js.map +1 -0
  33. package/dist/module/components/dropdown/dropdown.js +616 -0
  34. package/dist/module/components/dropdown/dropdown.js.map +1 -0
  35. package/dist/module/components/dropdown/types.js +4 -0
  36. package/dist/module/components/dropdown/types.js.map +1 -0
  37. package/dist/module/components/icon-button/icon-button.js +140 -0
  38. package/dist/module/components/icon-button/icon-button.js.map +1 -0
  39. package/dist/module/components/input/currency-input.js +60 -0
  40. package/dist/module/components/input/currency-input.js.map +1 -0
  41. package/dist/module/components/input/input.js +281 -0
  42. package/dist/module/components/input/input.js.map +1 -0
  43. package/dist/module/components/input/otp-input.js +196 -0
  44. package/dist/module/components/input/otp-input.js.map +1 -0
  45. package/dist/module/components/input/password-input.js +74 -0
  46. package/dist/module/components/input/password-input.js.map +1 -0
  47. package/dist/module/components/input/phone-input.js +68 -0
  48. package/dist/module/components/input/phone-input.js.map +1 -0
  49. package/dist/module/components/input/url-input.js +43 -0
  50. package/dist/module/components/input/url-input.js.map +1 -0
  51. package/dist/module/components/list-item/list-item.js +148 -0
  52. package/dist/module/components/list-item/list-item.js.map +1 -0
  53. package/dist/module/components/pin-code-field/pin-code-field.js +164 -0
  54. package/dist/module/components/pin-code-field/pin-code-field.js.map +1 -0
  55. package/dist/module/components/progress/progress.js +261 -0
  56. package/dist/module/components/progress/progress.js.map +1 -0
  57. package/dist/module/components/radio/radio.js +135 -0
  58. package/dist/module/components/radio/radio.js.map +1 -0
  59. package/dist/module/components/skeleton/skeleton.js +328 -0
  60. package/dist/module/components/skeleton/skeleton.js.map +1 -0
  61. package/dist/module/components/switch/switch.js +170 -0
  62. package/dist/module/components/switch/switch.js.map +1 -0
  63. package/dist/module/components/tabs/tabs.js +197 -0
  64. package/dist/module/components/tabs/tabs.js.map +1 -0
  65. package/dist/module/components/toast/toast-provider.js +117 -0
  66. package/dist/module/components/toast/toast-provider.js.map +1 -0
  67. package/dist/module/components/toast/toast.js +154 -0
  68. package/dist/module/components/toast/toast.js.map +1 -0
  69. package/dist/module/index.js +38 -0
  70. package/dist/module/index.js.map +1 -0
  71. package/dist/module/package.json +1 -0
  72. package/dist/module/theme/design-tokens.generated.js +379 -0
  73. package/dist/module/theme/design-tokens.generated.js.map +1 -0
  74. package/dist/module/theme/theme-provider.js +20 -0
  75. package/dist/module/theme/theme-provider.js.map +1 -0
  76. package/dist/module/theme/theme.js +56 -0
  77. package/dist/module/theme/theme.js.map +1 -0
  78. package/dist/typescript/components/accordion/accordion.d.ts +40 -0
  79. package/dist/typescript/components/accordion/accordion.d.ts.map +1 -0
  80. package/dist/typescript/components/app-bar/app-bar.d.ts +34 -0
  81. package/dist/typescript/components/app-bar/app-bar.d.ts.map +1 -0
  82. package/dist/typescript/components/avatar/avatar.d.ts +17 -0
  83. package/dist/typescript/components/avatar/avatar.d.ts.map +1 -0
  84. package/dist/typescript/components/badge/badge.d.ts +20 -0
  85. package/dist/typescript/components/badge/badge.d.ts.map +1 -0
  86. package/dist/typescript/components/bottom-navigation/bottom-navigation.d.ts +28 -0
  87. package/dist/typescript/components/bottom-navigation/bottom-navigation.d.ts.map +1 -0
  88. package/dist/typescript/components/bottom-sheet/bottom-sheet.d.ts +38 -0
  89. package/dist/typescript/components/bottom-sheet/bottom-sheet.d.ts.map +1 -0
  90. package/dist/typescript/components/button/button.d.ts +21 -0
  91. package/dist/typescript/components/button/button.d.ts.map +1 -0
  92. package/dist/typescript/components/calendar/calendar.d.ts +41 -0
  93. package/dist/typescript/components/calendar/calendar.d.ts.map +1 -0
  94. package/dist/typescript/components/call-item/call-item.d.ts +21 -0
  95. package/dist/typescript/components/call-item/call-item.d.ts.map +1 -0
  96. package/dist/typescript/components/card/card.d.ts +37 -0
  97. package/dist/typescript/components/card/card.d.ts.map +1 -0
  98. package/dist/typescript/components/chat-list-item/chat-list-item.d.ts +37 -0
  99. package/dist/typescript/components/chat-list-item/chat-list-item.d.ts.map +1 -0
  100. package/dist/typescript/components/checkbox/checkbox.d.ts +15 -0
  101. package/dist/typescript/components/checkbox/checkbox.d.ts.map +1 -0
  102. package/dist/typescript/components/dialog/dialog.d.ts +34 -0
  103. package/dist/typescript/components/dialog/dialog.d.ts.map +1 -0
  104. package/dist/typescript/components/divider/divider.d.ts +10 -0
  105. package/dist/typescript/components/divider/divider.d.ts.map +1 -0
  106. package/dist/typescript/components/dropdown/dropdown-menu.d.ts +27 -0
  107. package/dist/typescript/components/dropdown/dropdown-menu.d.ts.map +1 -0
  108. package/dist/typescript/components/dropdown/dropdown.d.ts +4 -0
  109. package/dist/typescript/components/dropdown/dropdown.d.ts.map +1 -0
  110. package/dist/typescript/components/dropdown/types.d.ts +52 -0
  111. package/dist/typescript/components/dropdown/types.d.ts.map +1 -0
  112. package/dist/typescript/components/icon-button/icon-button.d.ts +20 -0
  113. package/dist/typescript/components/icon-button/icon-button.d.ts.map +1 -0
  114. package/dist/typescript/components/input/currency-input.d.ts +10 -0
  115. package/dist/typescript/components/input/currency-input.d.ts.map +1 -0
  116. package/dist/typescript/components/input/input.d.ts +32 -0
  117. package/dist/typescript/components/input/input.d.ts.map +1 -0
  118. package/dist/typescript/components/input/otp-input.d.ts +23 -0
  119. package/dist/typescript/components/input/otp-input.d.ts.map +1 -0
  120. package/dist/typescript/components/input/password-input.d.ts +14 -0
  121. package/dist/typescript/components/input/password-input.d.ts.map +1 -0
  122. package/dist/typescript/components/input/phone-input.d.ts +13 -0
  123. package/dist/typescript/components/input/phone-input.d.ts.map +1 -0
  124. package/dist/typescript/components/input/url-input.d.ts +10 -0
  125. package/dist/typescript/components/input/url-input.d.ts.map +1 -0
  126. package/dist/typescript/components/list-item/list-item.d.ts +30 -0
  127. package/dist/typescript/components/list-item/list-item.d.ts.map +1 -0
  128. package/dist/typescript/components/pin-code-field/pin-code-field.d.ts +25 -0
  129. package/dist/typescript/components/pin-code-field/pin-code-field.d.ts.map +1 -0
  130. package/dist/typescript/components/progress/progress.d.ts +18 -0
  131. package/dist/typescript/components/progress/progress.d.ts.map +1 -0
  132. package/dist/typescript/components/radio/radio.d.ts +12 -0
  133. package/dist/typescript/components/radio/radio.d.ts.map +1 -0
  134. package/dist/typescript/components/skeleton/skeleton.d.ts +16 -0
  135. package/dist/typescript/components/skeleton/skeleton.d.ts.map +1 -0
  136. package/dist/typescript/components/switch/switch.d.ts +12 -0
  137. package/dist/typescript/components/switch/switch.d.ts.map +1 -0
  138. package/dist/typescript/components/tabs/tabs.d.ts +37 -0
  139. package/dist/typescript/components/tabs/tabs.d.ts.map +1 -0
  140. package/dist/typescript/components/toast/toast-provider.d.ts +22 -0
  141. package/dist/typescript/components/toast/toast-provider.d.ts.map +1 -0
  142. package/dist/typescript/components/toast/toast.d.ts +15 -0
  143. package/dist/typescript/components/toast/toast.d.ts.map +1 -0
  144. package/dist/typescript/index.d.ts +36 -0
  145. package/dist/typescript/index.d.ts.map +1 -0
  146. package/dist/typescript/package.json +1 -0
  147. package/dist/typescript/theme/design-tokens.generated.d.ts +375 -0
  148. package/dist/typescript/theme/design-tokens.generated.d.ts.map +1 -0
  149. package/dist/typescript/theme/theme-provider.d.ts +8 -0
  150. package/dist/typescript/theme/theme-provider.d.ts.map +1 -0
  151. package/dist/typescript/theme/theme.d.ts +52 -0
  152. package/dist/typescript/theme/theme.d.ts.map +1 -0
  153. package/package.json +88 -0
  154. package/tokens.css +132 -0
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+
3
+ import { StyleSheet, Text, View } from 'react-native';
4
+ import { cssInterop } from 'nativewind';
5
+ import { useTheme } from "../../theme/theme-provider.js";
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ export function Card({
8
+ backgroundColor,
9
+ children,
10
+ contentStyle,
11
+ containerStyle,
12
+ radius,
13
+ shadowColor,
14
+ shadowVariant = 'default',
15
+ style,
16
+ ...props
17
+ }) {
18
+ const activeTheme = useTheme();
19
+ const styles = createStyles(activeTheme);
20
+ const radiusStyle = resolveRadius(radius, activeTheme.border.radius);
21
+ const resolvedShadowColor = shadowColor ?? resolveShadowColor(shadowVariant, activeTheme);
22
+ return /*#__PURE__*/_jsxs(View, {
23
+ style: [styles.container, containerStyle],
24
+ children: [/*#__PURE__*/_jsx(View, {
25
+ pointerEvents: "none",
26
+ style: [styles.hardShadow, radiusStyle, {
27
+ backgroundColor: resolvedShadowColor
28
+ }],
29
+ testID: "card-hard-shadow"
30
+ }), /*#__PURE__*/_jsx(View, {
31
+ style: [styles.card, radiusStyle, {
32
+ backgroundColor: backgroundColor ?? activeTheme.colors.surface
33
+ }, style, contentStyle],
34
+ ...props,
35
+ children: children
36
+ })]
37
+ });
38
+ }
39
+ cssInterop(Card, {
40
+ className: 'style',
41
+ containerClassName: 'containerStyle',
42
+ contentClassName: 'contentStyle'
43
+ });
44
+ export function CardHeader({
45
+ children,
46
+ style,
47
+ ...props
48
+ }) {
49
+ const styles = useCardStyles();
50
+ return /*#__PURE__*/_jsx(View, {
51
+ style: [styles.header, style],
52
+ ...props,
53
+ children: children
54
+ });
55
+ }
56
+ export function CardTitle({
57
+ children,
58
+ style
59
+ }) {
60
+ const styles = useCardStyles();
61
+ return /*#__PURE__*/_jsx(Text, {
62
+ style: [styles.title, style],
63
+ children: children
64
+ });
65
+ }
66
+ export function CardDescription({
67
+ children,
68
+ style
69
+ }) {
70
+ const styles = useCardStyles();
71
+ return /*#__PURE__*/_jsx(Text, {
72
+ style: [styles.description, style],
73
+ children: children
74
+ });
75
+ }
76
+ export function CardAction({
77
+ children,
78
+ style,
79
+ ...props
80
+ }) {
81
+ const styles = useCardStyles();
82
+ return /*#__PURE__*/_jsx(View, {
83
+ style: [styles.action, style],
84
+ ...props,
85
+ children: children
86
+ });
87
+ }
88
+ export function CardContent({
89
+ children,
90
+ style,
91
+ ...props
92
+ }) {
93
+ const styles = useCardStyles();
94
+ return /*#__PURE__*/_jsx(View, {
95
+ style: [styles.content, style],
96
+ ...props,
97
+ children: children
98
+ });
99
+ }
100
+ export function CardFooter({
101
+ children,
102
+ style,
103
+ ...props
104
+ }) {
105
+ const styles = useCardStyles();
106
+ return /*#__PURE__*/_jsx(View, {
107
+ style: [styles.footer, style],
108
+ ...props,
109
+ children: children
110
+ });
111
+ }
112
+ function useCardStyles() {
113
+ return createStyles(useTheme());
114
+ }
115
+ function resolveRadius(radius, fallback) {
116
+ if (typeof radius === 'number') {
117
+ return {
118
+ borderRadius: radius
119
+ };
120
+ }
121
+ return {
122
+ borderBottomLeftRadius: radius?.bottomLeft ?? fallback,
123
+ borderBottomRightRadius: radius?.bottomRight ?? fallback,
124
+ borderTopLeftRadius: radius?.topLeft ?? fallback,
125
+ borderTopRightRadius: radius?.topRight ?? fallback
126
+ };
127
+ }
128
+ function resolveShadowColor(variant, theme) {
129
+ const colors = {
130
+ default: theme.shadow.color,
131
+ destructive: theme.colors.destructive,
132
+ info: theme.colors.info,
133
+ primary: theme.colors.primary,
134
+ secondary: theme.colors.secondary,
135
+ success: theme.colors.success,
136
+ warning: theme.colors.warning
137
+ };
138
+ return colors[variant];
139
+ }
140
+ function createStyles(theme) {
141
+ return StyleSheet.create({
142
+ container: {
143
+ paddingBottom: theme.shadow.offset,
144
+ paddingRight: theme.shadow.offset,
145
+ position: 'relative'
146
+ },
147
+ hardShadow: {
148
+ bottom: 0,
149
+ left: theme.shadow.offset,
150
+ position: 'absolute',
151
+ right: 0,
152
+ top: theme.shadow.offset
153
+ },
154
+ card: {
155
+ backgroundColor: theme.colors.surface,
156
+ borderColor: theme.border.color,
157
+ borderWidth: theme.border.width,
158
+ gap: theme.spacing.md,
159
+ padding: theme.spacing.md
160
+ },
161
+ header: {
162
+ flexDirection: 'row',
163
+ flexWrap: 'wrap',
164
+ gap: theme.spacing.xs
165
+ },
166
+ title: {
167
+ color: theme.colors.foreground,
168
+ flexGrow: 1,
169
+ fontSize: theme.typography.lg,
170
+ fontWeight: '700'
171
+ },
172
+ description: {
173
+ color: theme.colors.mutedForeground,
174
+ flexBasis: '100%',
175
+ fontSize: theme.typography.sm
176
+ },
177
+ action: {
178
+ marginLeft: 'auto'
179
+ },
180
+ content: {
181
+ flexGrow: 1
182
+ },
183
+ footer: {
184
+ alignItems: 'center',
185
+ flexDirection: 'row'
186
+ }
187
+ });
188
+ }
189
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StyleSheet","Text","View","cssInterop","useTheme","jsx","_jsx","jsxs","_jsxs","Card","backgroundColor","children","contentStyle","containerStyle","radius","shadowColor","shadowVariant","style","props","activeTheme","styles","createStyles","radiusStyle","resolveRadius","border","resolvedShadowColor","resolveShadowColor","container","pointerEvents","hardShadow","testID","card","colors","surface","className","containerClassName","contentClassName","CardHeader","useCardStyles","header","CardTitle","title","CardDescription","description","CardAction","action","CardContent","content","CardFooter","footer","fallback","borderRadius","borderBottomLeftRadius","bottomLeft","borderBottomRightRadius","bottomRight","borderTopLeftRadius","topLeft","borderTopRightRadius","topRight","variant","theme","default","shadow","color","destructive","info","primary","secondary","success","warning","create","paddingBottom","offset","paddingRight","position","bottom","left","right","top","borderColor","borderWidth","width","gap","spacing","md","padding","flexDirection","flexWrap","xs","foreground","flexGrow","fontSize","typography","lg","fontWeight","mutedForeground","flexBasis","sm","marginLeft","alignItems"],"sourceRoot":"../../../../src","sources":["components/card/card.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+
3
+ import { Pressable, StyleSheet, Text, View } from 'react-native';
4
+ import { Badge } from "../badge/badge.js";
5
+ import { Checkbox } from "../checkbox/checkbox.js";
6
+ import { useTheme } from "../../theme/theme-provider.js";
7
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
8
+ export function ChatListItem({
9
+ accessibilityLabel,
10
+ containerStyle,
11
+ delayLongPress,
12
+ disabled = false,
13
+ divider = true,
14
+ leading,
15
+ leadingStyle,
16
+ message,
17
+ messageLeading,
18
+ messageNumberOfLines = 1,
19
+ messageStyle,
20
+ onLongPress,
21
+ onPress,
22
+ onSelectionChange,
23
+ selectable = false,
24
+ selected = false,
25
+ selectionAccessibilityLabel,
26
+ state = 'default',
27
+ style,
28
+ timestamp,
29
+ timestampNumberOfLines = 1,
30
+ timestampStyle,
31
+ title,
32
+ titleNumberOfLines,
33
+ titleStyle,
34
+ titleTrailing,
35
+ trailing,
36
+ unreadBadgeProps,
37
+ unreadCount
38
+ }) {
39
+ const theme = useTheme();
40
+ const styles = createStyles(theme);
41
+ const titleText = typeof title === 'string' ? title : 'conversation';
42
+ const contents = /*#__PURE__*/_jsxs(_Fragment, {
43
+ children: [selectable ? /*#__PURE__*/_jsx(Checkbox, {
44
+ accessibilityLabel: selectionAccessibilityLabel ?? `Select ${titleText}`,
45
+ checked: selected,
46
+ disabled: disabled,
47
+ onValueChange: onSelectionChange
48
+ }) : null, leading ? /*#__PURE__*/_jsx(View, {
49
+ style: [styles.leading, leadingStyle],
50
+ children: leading
51
+ }) : null, /*#__PURE__*/_jsxs(View, {
52
+ style: styles.content,
53
+ children: [/*#__PURE__*/_jsxs(View, {
54
+ style: styles.header,
55
+ children: [/*#__PURE__*/_jsxs(View, {
56
+ style: styles.titleRow,
57
+ children: [/*#__PURE__*/_jsx(Text, {
58
+ numberOfLines: titleNumberOfLines ?? (state === 'request' ? 2 : 1),
59
+ style: [styles.title, state === 'request' && styles.requestTitle, titleStyle],
60
+ children: title
61
+ }), titleTrailing ? /*#__PURE__*/_jsx(View, {
62
+ style: styles.titleTrailing,
63
+ children: titleTrailing
64
+ }) : null]
65
+ }), !trailing ? /*#__PURE__*/_jsx(Text, {
66
+ numberOfLines: timestampNumberOfLines,
67
+ style: [styles.timestamp, timestampStyle],
68
+ children: timestamp
69
+ }) : null]
70
+ }), /*#__PURE__*/_jsxs(View, {
71
+ style: styles.preview,
72
+ children: [messageLeading ? /*#__PURE__*/_jsx(View, {
73
+ style: styles.messageLeading,
74
+ children: messageLeading
75
+ }) : null, /*#__PURE__*/_jsx(Text, {
76
+ numberOfLines: messageNumberOfLines,
77
+ style: [styles.message, state === 'request' && styles.requestMessage, messageStyle],
78
+ children: message
79
+ }), !trailing && state === 'unread' && unreadCount ? /*#__PURE__*/_jsx(Badge, {
80
+ radius: 0,
81
+ size: "sm",
82
+ type: "info",
83
+ ...unreadBadgeProps,
84
+ children: unreadCount
85
+ }) : null]
86
+ })]
87
+ }), trailing ? /*#__PURE__*/_jsx(View, {
88
+ style: styles.trailing,
89
+ children: trailing
90
+ }) : null]
91
+ });
92
+ return /*#__PURE__*/_jsxs(View, {
93
+ style: [styles.container, containerStyle],
94
+ children: [onPress || onLongPress ? /*#__PURE__*/_jsx(Pressable, {
95
+ accessibilityLabel: accessibilityLabel ?? titleText,
96
+ accessibilityRole: "button",
97
+ accessibilityState: {
98
+ disabled
99
+ },
100
+ delayLongPress: delayLongPress,
101
+ disabled: disabled,
102
+ onLongPress: onLongPress,
103
+ onPress: onPress,
104
+ style: [styles.row, selected && styles.selectedRow, state === 'request' && styles.requestRow, disabled && styles.disabled, style],
105
+ testID: "chat-list-item",
106
+ children: contents
107
+ }) : /*#__PURE__*/_jsx(View, {
108
+ style: [styles.row, selected && styles.selectedRow, state === 'request' && styles.requestRow, disabled && styles.disabled, style],
109
+ testID: "chat-list-item",
110
+ children: contents
111
+ }), divider ? /*#__PURE__*/_jsx(View, {
112
+ style: styles.divider,
113
+ testID: "chat-list-item-divider"
114
+ }) : null]
115
+ });
116
+ }
117
+ function createStyles(theme) {
118
+ return StyleSheet.create({
119
+ container: {
120
+ width: '100%'
121
+ },
122
+ row: {
123
+ alignItems: 'center',
124
+ flexDirection: 'row',
125
+ gap: theme.spacing.sm,
126
+ padding: theme.spacing.md
127
+ },
128
+ requestRow: {
129
+ alignItems: 'flex-start'
130
+ },
131
+ selectedRow: {
132
+ backgroundColor: theme.colors.accent
133
+ },
134
+ disabled: {
135
+ opacity: 0.6
136
+ },
137
+ leading: {
138
+ alignItems: 'center',
139
+ height: 40,
140
+ justifyContent: 'center',
141
+ width: 40
142
+ },
143
+ content: {
144
+ flex: 1,
145
+ minWidth: 0
146
+ },
147
+ header: {
148
+ alignItems: 'center',
149
+ flexDirection: 'row',
150
+ gap: theme.spacing.xs,
151
+ justifyContent: 'space-between'
152
+ },
153
+ title: {
154
+ color: theme.colors.foreground,
155
+ flex: 1,
156
+ fontSize: theme.typography.lg,
157
+ fontWeight: theme.typography.weight,
158
+ lineHeight: 28,
159
+ minWidth: 0
160
+ },
161
+ titleRow: {
162
+ alignItems: 'center',
163
+ flex: 1,
164
+ flexDirection: 'row',
165
+ gap: theme.spacing.xs,
166
+ minWidth: 0
167
+ },
168
+ titleTrailing: {
169
+ flexShrink: 0
170
+ },
171
+ requestTitle: {
172
+ fontSize: theme.typography.md,
173
+ lineHeight: 24
174
+ },
175
+ timestamp: {
176
+ color: theme.colors.mutedForeground,
177
+ fontSize: theme.typography.xs,
178
+ fontWeight: '700',
179
+ lineHeight: theme.typography.xsLineHeight
180
+ },
181
+ preview: {
182
+ alignItems: 'center',
183
+ flexDirection: 'row',
184
+ gap: theme.spacing.xs,
185
+ justifyContent: 'space-between'
186
+ },
187
+ messageLeading: {
188
+ flexShrink: 0
189
+ },
190
+ message: {
191
+ color: theme.colors.mutedForeground,
192
+ flex: 1,
193
+ fontSize: theme.typography.sm,
194
+ lineHeight: 20,
195
+ minWidth: 0
196
+ },
197
+ requestMessage: {
198
+ color: theme.colors.foreground
199
+ },
200
+ trailing: {
201
+ alignItems: 'flex-end',
202
+ flexShrink: 0,
203
+ justifyContent: 'center'
204
+ },
205
+ divider: {
206
+ backgroundColor: theme.border.color,
207
+ height: 1,
208
+ width: '100%'
209
+ }
210
+ });
211
+ }
212
+ //# sourceMappingURL=chat-list-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Pressable","StyleSheet","Text","View","Badge","Checkbox","useTheme","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ChatListItem","accessibilityLabel","containerStyle","delayLongPress","disabled","divider","leading","leadingStyle","message","messageLeading","messageNumberOfLines","messageStyle","onLongPress","onPress","onSelectionChange","selectable","selected","selectionAccessibilityLabel","state","style","timestamp","timestampNumberOfLines","timestampStyle","title","titleNumberOfLines","titleStyle","titleTrailing","trailing","unreadBadgeProps","unreadCount","theme","styles","createStyles","titleText","contents","children","checked","onValueChange","content","header","titleRow","numberOfLines","requestTitle","preview","requestMessage","radius","size","type","container","accessibilityRole","accessibilityState","row","selectedRow","requestRow","testID","create","width","alignItems","flexDirection","gap","spacing","sm","padding","md","backgroundColor","colors","accent","opacity","height","justifyContent","flex","minWidth","xs","color","foreground","fontSize","typography","lg","fontWeight","weight","lineHeight","flexShrink","mutedForeground","xsLineHeight","border"],"sourceRoot":"../../../../src","sources":["components/chat-list-item/chat-list-item.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+
3
+ import { Platform, Pressable, StyleSheet, Text, View } from 'react-native';
4
+ import { Check, Minus } from 'lucide-react-native';
5
+ import { useTheme } from "../../theme/theme-provider.js";
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ export function Checkbox({
8
+ accessibilityLabel,
9
+ checked = false,
10
+ description,
11
+ disabled,
12
+ error = false,
13
+ indeterminate = false,
14
+ label,
15
+ labelPosition = 'right',
16
+ onValueChange,
17
+ radius = 0,
18
+ style,
19
+ ...props
20
+ }) {
21
+ const theme = useTheme();
22
+ const styles = createStyles(theme);
23
+ const isDisabled = disabled ?? false;
24
+ const isActive = checked || indeterminate;
25
+ const hasShadow = isActive || error;
26
+ const usesAndroidHardShadow = Platform.OS === 'android' && hasShadow;
27
+ const Icon = indeterminate ? Minus : Check;
28
+ const labelContent = label ? /*#__PURE__*/_jsxs(View, {
29
+ style: [styles.labelContainer, disabled && styles.disabledLabel],
30
+ children: [/*#__PURE__*/_jsx(Text, {
31
+ style: [styles.label, error && styles.errorLabel],
32
+ children: label
33
+ }), description ? /*#__PURE__*/_jsx(Text, {
34
+ style: styles.description,
35
+ children: description
36
+ }) : null]
37
+ }) : null;
38
+ return /*#__PURE__*/_jsxs(Pressable, {
39
+ accessibilityLabel: accessibilityLabel ?? label,
40
+ accessibilityRole: "checkbox",
41
+ accessibilityState: {
42
+ checked: indeterminate ? 'mixed' : checked,
43
+ disabled: isDisabled
44
+ },
45
+ disabled: isDisabled,
46
+ onPress: () => onValueChange?.(!checked),
47
+ style: [styles.root, style],
48
+ ...props,
49
+ children: [labelPosition === 'left' ? labelContent : null, /*#__PURE__*/_jsxs(View, {
50
+ style: usesAndroidHardShadow && styles.androidShadowContainer,
51
+ children: [usesAndroidHardShadow ? /*#__PURE__*/_jsx(View, {
52
+ pointerEvents: "none",
53
+ style: [styles.androidHardShadow, {
54
+ borderRadius: radius
55
+ }],
56
+ testID: "checkbox-hard-shadow"
57
+ }) : null, /*#__PURE__*/_jsx(View, {
58
+ style: [styles.box, {
59
+ borderRadius: radius
60
+ }, isActive && styles.activeBox, error && !isActive && styles.errorBox, isDisabled && styles.disabledBox, hasShadow && !usesAndroidHardShadow && styles.iosShadow],
61
+ children: isActive ? /*#__PURE__*/_jsx(Icon, {
62
+ color: theme.colors.foreground,
63
+ size: 16,
64
+ strokeWidth: 2
65
+ }) : null
66
+ })]
67
+ }), labelPosition === 'right' ? labelContent : null]
68
+ });
69
+ }
70
+ function createStyles(theme) {
71
+ return StyleSheet.create({
72
+ root: {
73
+ alignItems: 'flex-start',
74
+ flexDirection: 'row',
75
+ gap: 6
76
+ },
77
+ labelContainer: {
78
+ flex: 1,
79
+ gap: 2,
80
+ paddingTop: 1
81
+ },
82
+ label: {
83
+ color: theme.colors.foreground,
84
+ fontSize: theme.typography.md,
85
+ fontWeight: theme.typography.weight,
86
+ lineHeight: 24
87
+ },
88
+ errorLabel: {
89
+ color: theme.colors.destructive
90
+ },
91
+ description: {
92
+ color: theme.colors.mutedForeground,
93
+ fontSize: theme.typography.sm,
94
+ lineHeight: 20
95
+ },
96
+ disabledLabel: {
97
+ opacity: 0.6
98
+ },
99
+ box: {
100
+ alignItems: 'center',
101
+ backgroundColor: theme.colors.surface,
102
+ borderColor: theme.border.color,
103
+ borderWidth: theme.border.width,
104
+ height: 24,
105
+ justifyContent: 'center',
106
+ width: 24
107
+ },
108
+ activeBox: {
109
+ backgroundColor: theme.colors.primary
110
+ },
111
+ errorBox: {
112
+ borderColor: theme.colors.destructive
113
+ },
114
+ disabledBox: {
115
+ opacity: 0.6
116
+ },
117
+ androidShadowContainer: {
118
+ paddingBottom: theme.shadow.xsOffset,
119
+ paddingRight: theme.shadow.xsOffset,
120
+ position: 'relative'
121
+ },
122
+ androidHardShadow: {
123
+ backgroundColor: theme.shadow.color,
124
+ bottom: 0,
125
+ left: theme.shadow.xsOffset,
126
+ position: 'absolute',
127
+ right: 0,
128
+ top: theme.shadow.xsOffset
129
+ },
130
+ iosShadow: {
131
+ shadowColor: theme.shadow.color,
132
+ shadowOffset: {
133
+ width: theme.shadow.xsOffset,
134
+ height: theme.shadow.xsOffset
135
+ },
136
+ shadowOpacity: 1,
137
+ shadowRadius: 0
138
+ }
139
+ });
140
+ }
141
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Platform","Pressable","StyleSheet","Text","View","Check","Minus","useTheme","jsx","_jsx","jsxs","_jsxs","Checkbox","accessibilityLabel","checked","description","disabled","error","indeterminate","label","labelPosition","onValueChange","radius","style","props","theme","styles","createStyles","isDisabled","isActive","hasShadow","usesAndroidHardShadow","OS","Icon","labelContent","labelContainer","disabledLabel","children","errorLabel","accessibilityRole","accessibilityState","onPress","root","androidShadowContainer","pointerEvents","androidHardShadow","borderRadius","testID","box","activeBox","errorBox","disabledBox","iosShadow","color","colors","foreground","size","strokeWidth","create","alignItems","flexDirection","gap","flex","paddingTop","fontSize","typography","md","fontWeight","weight","lineHeight","destructive","mutedForeground","sm","opacity","backgroundColor","surface","borderColor","border","borderWidth","width","height","justifyContent","primary","paddingBottom","shadow","xsOffset","paddingRight","position","bottom","left","right","top","shadowColor","shadowOffset","shadowOpacity","shadowRadius"],"sourceRoot":"../../../../src","sources":["components/checkbox/checkbox.tsx"],"mappings":"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","ignoreList":[]}