@harkenapp/sdk-react-native 0.0.1-alpha.5 → 0.0.1-alpha.7
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/dist/components/AttachmentGrid.d.ts.map +1 -1
- package/dist/components/AttachmentGrid.js +36 -29
- package/dist/components/AttachmentGrid.js.map +1 -1
- package/dist/components/AttachmentPicker.d.ts.map +1 -1
- package/dist/components/AttachmentPicker.js +33 -28
- package/dist/components/AttachmentPicker.js.map +1 -1
- package/dist/components/CategorySelector.d.ts +0 -46
- package/dist/components/CategorySelector.d.ts.map +1 -1
- package/dist/components/CategorySelector.js +31 -72
- package/dist/components/CategorySelector.js.map +1 -1
- package/dist/components/ThemedButton.d.ts +1 -1
- package/dist/components/ThemedButton.d.ts.map +1 -1
- package/dist/components/ThemedButton.js +67 -28
- package/dist/components/ThemedButton.js.map +1 -1
- package/dist/hooks/usePressedState.d.ts +46 -0
- package/dist/hooks/usePressedState.d.ts.map +1 -0
- package/dist/hooks/usePressedState.js +51 -0
- package/dist/hooks/usePressedState.js.map +1 -0
- package/package.json +1 -1
- package/src/components/AttachmentGrid.tsx +81 -38
- package/src/components/AttachmentPicker.tsx +57 -32
- package/src/components/CategorySelector.tsx +74 -35
- package/src/components/ThemedButton.tsx +58 -27
- package/src/hooks/usePressedState.ts +63 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentGrid.d.ts","sourceRoot":"","sources":["../../src/components/AttachmentGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"AttachmentGrid.d.ts","sourceRoot":"","sources":["../../src/components/AttachmentGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAKrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;IACzC,+BAA+B;IAC/B,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,QAAQ,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IAC9E,+CAA+C;IAC/C,UAAU,CAAC,EAAE,CACX,UAAU,EAAE,eAAe,EAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,EACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,KAClB,KAAK,CAAC,SAAS,CAAC;IACrB,oCAAoC;IACpC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,4BAA4B;IAC5B,cAAc,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IACvC,8CAA8C;IAC9C,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,8DAA8D;IAC9D,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;IAC7D,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CAC9E;AAyED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,wBAAgB,cAAc,CAAC,EAC7B,WAAW,EACX,OAAO,EACP,QAAQ,EACR,KAAK,EACL,cAAmB,EACnB,QAAQ,EACR,GAAG,EACH,aAAoB,EACpB,QAAgB,EAChB,KAAK,EACL,cAAsB,EACtB,aAAmB,EACnB,cAAc,EACd,SAA4B,EAC5B,eAAe,EACf,UAAU,EACV,SAAS,EACT,cAAc,EACd,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA6EzC"}
|
|
@@ -7,8 +7,42 @@ exports.AttachmentGrid = AttachmentGrid;
|
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const react_native_1 = require("react-native");
|
|
9
9
|
const hooks_1 = require("../hooks");
|
|
10
|
+
const usePressedState_1 = require("../hooks/usePressedState");
|
|
10
11
|
const ThemedText_1 = require("./ThemedText");
|
|
11
12
|
const AttachmentPreview_1 = require("./AttachmentPreview");
|
|
13
|
+
function AddButton({ onAdd, disabled, tileSize, tileRadius, addButtonLabel, addButtonIcon, addButtonStyle, }) {
|
|
14
|
+
const theme = (0, hooks_1.useHarkenTheme)();
|
|
15
|
+
const { addButton } = theme.components;
|
|
16
|
+
const { isPressed, onPressIn, onPressOut } = (0, usePressedState_1.usePressedState)(disabled);
|
|
17
|
+
return (<react_native_1.Pressable onPress={onAdd} disabled={disabled} onPressIn={onPressIn} onPressOut={onPressOut} style={[
|
|
18
|
+
styles.addButton,
|
|
19
|
+
{
|
|
20
|
+
width: tileSize,
|
|
21
|
+
height: tileSize,
|
|
22
|
+
borderRadius: tileRadius,
|
|
23
|
+
backgroundColor: isPressed ? addButton.backgroundPressed : addButton.background,
|
|
24
|
+
borderWidth: 2,
|
|
25
|
+
borderColor: addButton.border,
|
|
26
|
+
borderStyle: "dashed",
|
|
27
|
+
opacity: disabled ? theme.opacity.disabled : 1,
|
|
28
|
+
},
|
|
29
|
+
addButtonStyle,
|
|
30
|
+
]}>
|
|
31
|
+
{typeof addButtonIcon === "string" ? (<ThemedText_1.ThemedText style={[
|
|
32
|
+
styles.addIcon,
|
|
33
|
+
{
|
|
34
|
+
color: addButton.icon,
|
|
35
|
+
fontSize: addButton.iconSize,
|
|
36
|
+
lineHeight: addButton.iconSize * 1.15,
|
|
37
|
+
},
|
|
38
|
+
]}>
|
|
39
|
+
{addButtonIcon}
|
|
40
|
+
</ThemedText_1.ThemedText>) : (addButtonIcon)}
|
|
41
|
+
<ThemedText_1.ThemedText variant="caption" color={addButton.text}>
|
|
42
|
+
{addButtonLabel}
|
|
43
|
+
</ThemedText_1.ThemedText>
|
|
44
|
+
</react_native_1.Pressable>);
|
|
45
|
+
}
|
|
12
46
|
/**
|
|
13
47
|
* Grid component for displaying multiple attachments.
|
|
14
48
|
*
|
|
@@ -63,7 +97,7 @@ const AttachmentPreview_1 = require("./AttachmentPreview");
|
|
|
63
97
|
*/
|
|
64
98
|
function AttachmentGrid({ attachments, onRetry, onRemove, onAdd, maxAttachments = 10, tileSize, gap, showAddButton = true, disabled = false, style, addButtonLabel = "Add", addButtonIcon = "+", addButtonStyle, emptyText = "No attachments", renderAddButton, renderTile, tileStyle, tileImageStyle, statusLabels, getFileIcon, renderPlaceholder, }) {
|
|
65
99
|
const theme = (0, hooks_1.useHarkenTheme)();
|
|
66
|
-
const { tile
|
|
100
|
+
const { tile } = theme.components;
|
|
67
101
|
const effectiveTileSize = tileSize ?? tile.size;
|
|
68
102
|
const effectiveGap = gap ?? tile.gap;
|
|
69
103
|
const canAddMore = attachments.length < maxAttachments;
|
|
@@ -82,34 +116,7 @@ function AttachmentGrid({ attachments, onRetry, onRemove, onAdd, maxAttachments
|
|
|
82
116
|
})}
|
|
83
117
|
|
|
84
118
|
{shouldShowAddButton &&
|
|
85
|
-
(renderAddButton ? (renderAddButton(onAdd, disabled)) : (<
|
|
86
|
-
styles.addButton,
|
|
87
|
-
{
|
|
88
|
-
width: effectiveTileSize,
|
|
89
|
-
height: effectiveTileSize,
|
|
90
|
-
borderRadius: tile.radius,
|
|
91
|
-
backgroundColor: pressed ? addButton.backgroundPressed : addButton.background,
|
|
92
|
-
borderWidth: 2,
|
|
93
|
-
borderColor: addButton.border,
|
|
94
|
-
borderStyle: "dashed",
|
|
95
|
-
opacity: disabled ? theme.opacity.disabled : 1,
|
|
96
|
-
},
|
|
97
|
-
addButtonStyle,
|
|
98
|
-
]}>
|
|
99
|
-
{typeof addButtonIcon === "string" ? (<ThemedText_1.ThemedText style={[
|
|
100
|
-
styles.addIcon,
|
|
101
|
-
{
|
|
102
|
-
color: addButton.icon,
|
|
103
|
-
fontSize: addButton.iconSize,
|
|
104
|
-
lineHeight: addButton.iconSize * 1.15, // Scale lineHeight with iconSize
|
|
105
|
-
},
|
|
106
|
-
]}>
|
|
107
|
-
{addButtonIcon}
|
|
108
|
-
</ThemedText_1.ThemedText>) : (addButtonIcon)}
|
|
109
|
-
<ThemedText_1.ThemedText variant="caption" color={addButton.text}>
|
|
110
|
-
{addButtonLabel}
|
|
111
|
-
</ThemedText_1.ThemedText>
|
|
112
|
-
</react_native_1.Pressable>))}
|
|
119
|
+
(renderAddButton ? (renderAddButton(onAdd, disabled)) : (<AddButton onAdd={onAdd} disabled={disabled} tileSize={effectiveTileSize} tileRadius={tile.radius} addButtonLabel={addButtonLabel} addButtonIcon={addButtonIcon} addButtonStyle={addButtonStyle}/>))}
|
|
113
120
|
|
|
114
121
|
{attachments.length === 0 && !shouldShowAddButton && (<react_native_1.View style={[
|
|
115
122
|
styles.emptyState,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentGrid.js","sourceRoot":"","sources":["../../src/components/AttachmentGrid.tsx"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"AttachmentGrid.js","sourceRoot":"","sources":["../../src/components/AttachmentGrid.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentPicker.d.ts","sourceRoot":"","sources":["../../src/components/AttachmentPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAUjD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"AttachmentPicker.d.ts","sourceRoot":"","sources":["../../src/components/AttachmentPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAUjD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,uCAAuC;IACvC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,8CAA8C;IAC9C,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,gDAAgD;IAChD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC3D,0CAA0C;IAC1C,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,kBAAkB,CAAC;QAC5B,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;KAC/B,CAAC;IACF,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,uCAAuC;IACvC,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACpC;AAgED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,OAAO,EACP,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,KAAwB,EACxB,UAAU,EACV,OAAO,EAAE,eAAe,EACxB,WAAsB,EACtB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,GACZ,EAAE,qBAAqB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAuJlD"}
|
|
@@ -38,7 +38,39 @@ const react_1 = __importStar(require("react"));
|
|
|
38
38
|
const react_native_1 = require("react-native");
|
|
39
39
|
const react_native_safe_area_context_1 = require("react-native-safe-area-context");
|
|
40
40
|
const hooks_1 = require("../hooks");
|
|
41
|
+
const usePressedState_1 = require("../hooks/usePressedState");
|
|
41
42
|
const ThemedText_1 = require("./ThemedText");
|
|
43
|
+
function OptionRow({ option, onPress, optionStyle }) {
|
|
44
|
+
const theme = (0, hooks_1.useHarkenTheme)();
|
|
45
|
+
const { picker } = theme.components;
|
|
46
|
+
const { isPressed, onPressIn, onPressOut } = (0, usePressedState_1.usePressedState)(false);
|
|
47
|
+
return (<react_native_1.Pressable onPress={onPress} onPressIn={onPressIn} onPressOut={onPressOut} style={[
|
|
48
|
+
styles.option,
|
|
49
|
+
{
|
|
50
|
+
backgroundColor: isPressed ? picker.optionBackgroundPressed : picker.optionBackground,
|
|
51
|
+
borderRadius: theme.radii.md,
|
|
52
|
+
},
|
|
53
|
+
optionStyle,
|
|
54
|
+
]}>
|
|
55
|
+
<react_native_1.View style={[
|
|
56
|
+
styles.iconContainer,
|
|
57
|
+
{
|
|
58
|
+
width: picker.iconSize,
|
|
59
|
+
height: picker.iconSize,
|
|
60
|
+
backgroundColor: option.color,
|
|
61
|
+
borderRadius: theme.radii.full,
|
|
62
|
+
},
|
|
63
|
+
]}>
|
|
64
|
+
{option.icon}
|
|
65
|
+
</react_native_1.View>
|
|
66
|
+
<react_native_1.View style={styles.optionText}>
|
|
67
|
+
<ThemedText_1.ThemedText variant="label">{option.label}</ThemedText_1.ThemedText>
|
|
68
|
+
<ThemedText_1.ThemedText variant="caption" secondary>
|
|
69
|
+
{option.description}
|
|
70
|
+
</ThemedText_1.ThemedText>
|
|
71
|
+
</react_native_1.View>
|
|
72
|
+
</react_native_1.Pressable>);
|
|
73
|
+
}
|
|
42
74
|
/**
|
|
43
75
|
* Platform-appropriate attachment source picker.
|
|
44
76
|
*
|
|
@@ -191,34 +223,7 @@ function AttachmentPicker({ visible, onClose, onTakePhoto, onPickFromLibrary, on
|
|
|
191
223
|
|
|
192
224
|
{/* Options */}
|
|
193
225
|
<react_native_1.View style={styles.optionsContainer}>
|
|
194
|
-
{visibleOptions.map((option) => (<
|
|
195
|
-
styles.option,
|
|
196
|
-
{
|
|
197
|
-
backgroundColor: pressed
|
|
198
|
-
? picker.optionBackgroundPressed
|
|
199
|
-
: picker.optionBackground,
|
|
200
|
-
borderRadius: theme.radii.md,
|
|
201
|
-
},
|
|
202
|
-
optionStyle,
|
|
203
|
-
]} onPress={() => handleOptionPress(option.action)}>
|
|
204
|
-
<react_native_1.View style={[
|
|
205
|
-
styles.iconContainer,
|
|
206
|
-
{
|
|
207
|
-
width: picker.iconSize,
|
|
208
|
-
height: picker.iconSize,
|
|
209
|
-
backgroundColor: option.color,
|
|
210
|
-
borderRadius: theme.radii.full,
|
|
211
|
-
},
|
|
212
|
-
]}>
|
|
213
|
-
{option.icon}
|
|
214
|
-
</react_native_1.View>
|
|
215
|
-
<react_native_1.View style={styles.optionText}>
|
|
216
|
-
<ThemedText_1.ThemedText variant="label">{option.label}</ThemedText_1.ThemedText>
|
|
217
|
-
<ThemedText_1.ThemedText variant="caption" secondary>
|
|
218
|
-
{option.description}
|
|
219
|
-
</ThemedText_1.ThemedText>
|
|
220
|
-
</react_native_1.View>
|
|
221
|
-
</react_native_1.Pressable>))}
|
|
226
|
+
{visibleOptions.map((option) => (<OptionRow key={option.key} option={option} onPress={() => handleOptionPress(option.action)} optionStyle={optionStyle}/>))}
|
|
222
227
|
|
|
223
228
|
{/* Cancel Button */}
|
|
224
229
|
<react_native_1.Pressable style={styles.cancelButton} onPress={onClose}>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentPicker.js","sourceRoot":"","sources":["../../src/components/AttachmentPicker.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"AttachmentPicker.js","sourceRoot":"","sources":["../../src/components/AttachmentPicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -27,51 +27,5 @@ export interface CategorySelectorProps {
|
|
|
27
27
|
/** Style for selected chips */
|
|
28
28
|
selectedChipStyle?: StyleProp<ViewStyle>;
|
|
29
29
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Category selector for feedback type.
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* ```tsx
|
|
35
|
-
* // Basic usage
|
|
36
|
-
* <CategorySelector
|
|
37
|
-
* value={category}
|
|
38
|
-
* onChange={setCategory}
|
|
39
|
-
* />
|
|
40
|
-
*
|
|
41
|
-
* // Custom categories without emojis
|
|
42
|
-
* <CategorySelector
|
|
43
|
-
* value={category}
|
|
44
|
-
* onChange={setCategory}
|
|
45
|
-
* categories={[
|
|
46
|
-
* { value: 'bug', label: 'Report Bug' },
|
|
47
|
-
* { value: 'idea', label: 'Feature Request' },
|
|
48
|
-
* ]}
|
|
49
|
-
* />
|
|
50
|
-
*
|
|
51
|
-
* // With custom icons
|
|
52
|
-
* <CategorySelector
|
|
53
|
-
* value={category}
|
|
54
|
-
* onChange={setCategory}
|
|
55
|
-
* categories={[
|
|
56
|
-
* { value: 'bug', label: 'Bug', icon: <BugIcon /> },
|
|
57
|
-
* { value: 'idea', label: 'Idea', icon: <LightbulbIcon /> },
|
|
58
|
-
* ]}
|
|
59
|
-
* />
|
|
60
|
-
*
|
|
61
|
-
* // Fully custom rendering
|
|
62
|
-
* <CategorySelector
|
|
63
|
-
* value={category}
|
|
64
|
-
* onChange={setCategory}
|
|
65
|
-
* renderCategory={(option, isSelected, onSelect) => (
|
|
66
|
-
* <MyCustomChip
|
|
67
|
-
* key={option.value}
|
|
68
|
-
* selected={isSelected}
|
|
69
|
-
* onPress={onSelect}
|
|
70
|
-
* label={option.label}
|
|
71
|
-
* />
|
|
72
|
-
* )}
|
|
73
|
-
* />
|
|
74
|
-
* ```
|
|
75
|
-
*/
|
|
76
30
|
export declare function CategorySelector({ value, onChange, categories, disabled, renderCategory, style, chipStyle, selectedChipStyle, }: CategorySelectorProps): React.JSX.Element;
|
|
77
31
|
//# sourceMappingURL=CategorySelector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CategorySelector.d.ts","sourceRoot":"","sources":["../../src/components/CategorySelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"CategorySelector.d.ts","sourceRoot":"","sources":["../../src/components/CategorySelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,eAAO,MAAM,kBAAkB,EAAE,cAAc,EAK9C,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,kCAAkC;IAClC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC/B,yCAAyC;IACzC,QAAQ,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/C,2DAA2D;IAC3D,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,cAAc,CAAC,EAAE,CACf,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,OAAO,EACnB,QAAQ,EAAE,MAAM,IAAI,KACjB,KAAK,CAAC,SAAS,CAAC;IACrB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,iCAAiC;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,+BAA+B;IAC/B,iBAAiB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC1C;AAkHD,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,UAA+B,EAC/B,QAAgB,EAChB,cAAc,EACd,KAAK,EACL,SAAS,EACT,iBAAiB,GAClB,EAAE,qBAAqB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAuC3C"}
|
|
@@ -8,6 +8,7 @@ exports.CategorySelector = CategorySelector;
|
|
|
8
8
|
const react_1 = __importDefault(require("react"));
|
|
9
9
|
const react_native_1 = require("react-native");
|
|
10
10
|
const hooks_1 = require("../hooks");
|
|
11
|
+
const usePressedState_1 = require("../hooks/usePressedState");
|
|
11
12
|
const ThemedText_1 = require("./ThemedText");
|
|
12
13
|
exports.DEFAULT_CATEGORIES = [
|
|
13
14
|
{ value: "bug", label: "Bug", emoji: "🐛" },
|
|
@@ -15,52 +16,35 @@ exports.DEFAULT_CATEGORIES = [
|
|
|
15
16
|
{ value: "ux", label: "UX", emoji: "✨" },
|
|
16
17
|
{ value: "other", label: "Other", emoji: "💬" },
|
|
17
18
|
];
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
* />
|
|
48
|
-
*
|
|
49
|
-
* // Fully custom rendering
|
|
50
|
-
* <CategorySelector
|
|
51
|
-
* value={category}
|
|
52
|
-
* onChange={setCategory}
|
|
53
|
-
* renderCategory={(option, isSelected, onSelect) => (
|
|
54
|
-
* <MyCustomChip
|
|
55
|
-
* key={option.value}
|
|
56
|
-
* selected={isSelected}
|
|
57
|
-
* onPress={onSelect}
|
|
58
|
-
* label={option.label}
|
|
59
|
-
* />
|
|
60
|
-
* )}
|
|
61
|
-
* />
|
|
62
|
-
* ```
|
|
63
|
-
*/
|
|
19
|
+
function CategoryChip({ category, isSelected, onSelect, disabled, chipStyle, selectedChipStyle, }) {
|
|
20
|
+
const theme = (0, hooks_1.useHarkenTheme)();
|
|
21
|
+
const { chip } = theme.components;
|
|
22
|
+
const { isPressed, onPressIn, onPressOut } = (0, usePressedState_1.usePressedState)(disabled);
|
|
23
|
+
const baseChipStyle = {
|
|
24
|
+
flexDirection: "row",
|
|
25
|
+
alignItems: "center",
|
|
26
|
+
paddingVertical: chip.paddingVertical,
|
|
27
|
+
paddingHorizontal: chip.paddingHorizontal,
|
|
28
|
+
borderRadius: chip.radius,
|
|
29
|
+
borderWidth: 1,
|
|
30
|
+
borderColor: isSelected ? chip.borderSelected : chip.border,
|
|
31
|
+
backgroundColor: isSelected ? chip.backgroundSelected : chip.background,
|
|
32
|
+
};
|
|
33
|
+
const textColor = isSelected ? chip.textSelected : chip.text;
|
|
34
|
+
// Apply opacity last to guarantee visual feedback even if user styles set opacity
|
|
35
|
+
const pressedOpacity = disabled ? theme.opacity.disabled : isPressed ? theme.opacity.pressed : 1;
|
|
36
|
+
return (<react_native_1.Pressable onPress={onSelect} disabled={disabled} onPressIn={onPressIn} onPressOut={onPressOut} style={[
|
|
37
|
+
baseChipStyle,
|
|
38
|
+
chipStyle,
|
|
39
|
+
isSelected && selectedChipStyle,
|
|
40
|
+
{ opacity: pressedOpacity },
|
|
41
|
+
]}>
|
|
42
|
+
{category.icon ? (<react_native_1.View style={{ marginRight: theme.spacing.xs }}>{category.icon}</react_native_1.View>) : category.emoji ? (<ThemedText_1.ThemedText style={{ marginRight: theme.spacing.xs }}>{category.emoji}</ThemedText_1.ThemedText>) : null}
|
|
43
|
+
<ThemedText_1.ThemedText variant="label" color={textColor}>
|
|
44
|
+
{category.label}
|
|
45
|
+
</ThemedText_1.ThemedText>
|
|
46
|
+
</react_native_1.Pressable>);
|
|
47
|
+
}
|
|
64
48
|
function CategorySelector({ value, onChange, categories = exports.DEFAULT_CATEGORIES, disabled = false, renderCategory, style, chipStyle, selectedChipStyle, }) {
|
|
65
49
|
const theme = (0, hooks_1.useHarkenTheme)();
|
|
66
50
|
const { chip } = theme.components;
|
|
@@ -79,32 +63,7 @@ function CategorySelector({ value, onChange, categories = exports.DEFAULT_CATEGO
|
|
|
79
63
|
{renderCategory(category, isSelected, onSelect)}
|
|
80
64
|
</react_1.default.Fragment>);
|
|
81
65
|
}
|
|
82
|
-
|
|
83
|
-
flexDirection: "row",
|
|
84
|
-
alignItems: "center",
|
|
85
|
-
paddingVertical: chip.paddingVertical,
|
|
86
|
-
paddingHorizontal: chip.paddingHorizontal,
|
|
87
|
-
borderRadius: chip.radius,
|
|
88
|
-
borderWidth: 1,
|
|
89
|
-
borderColor: isSelected ? chip.borderSelected : chip.border,
|
|
90
|
-
backgroundColor: isSelected ? chip.backgroundSelected : chip.background,
|
|
91
|
-
opacity: disabled ? theme.opacity.disabled : 1,
|
|
92
|
-
};
|
|
93
|
-
const textColor = isSelected ? chip.textSelected : chip.text;
|
|
94
|
-
return (<react_native_1.Pressable key={category.value} onPress={onSelect} disabled={disabled} style={({ pressed }) => [
|
|
95
|
-
baseChipStyle,
|
|
96
|
-
chipStyle,
|
|
97
|
-
isSelected && selectedChipStyle,
|
|
98
|
-
pressed &&
|
|
99
|
-
!disabled && {
|
|
100
|
-
opacity: theme.opacity.pressed,
|
|
101
|
-
},
|
|
102
|
-
]}>
|
|
103
|
-
{category.icon ? (<react_native_1.View style={{ marginRight: theme.spacing.xs }}>{category.icon}</react_native_1.View>) : category.emoji ? (<ThemedText_1.ThemedText style={{ marginRight: theme.spacing.xs }}>{category.emoji}</ThemedText_1.ThemedText>) : null}
|
|
104
|
-
<ThemedText_1.ThemedText variant="label" color={textColor}>
|
|
105
|
-
{category.label}
|
|
106
|
-
</ThemedText_1.ThemedText>
|
|
107
|
-
</react_native_1.Pressable>);
|
|
66
|
+
return (<CategoryChip key={category.value} category={category} isSelected={isSelected} onSelect={onSelect} disabled={disabled} chipStyle={chipStyle} selectedChipStyle={selectedChipStyle}/>);
|
|
108
67
|
})}
|
|
109
68
|
</react_native_1.View>);
|
|
110
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CategorySelector.js","sourceRoot":"","sources":["../../src/components/CategorySelector.tsx"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"CategorySelector.js","sourceRoot":"","sources":["../../src/components/CategorySelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -30,5 +30,5 @@ export interface ThemedButtonProps extends Omit<PressableProps, "children" | "st
|
|
|
30
30
|
* - `sizing.buttonMinHeight` for minimum height
|
|
31
31
|
* - `opacity.disabled` for disabled state
|
|
32
32
|
*/
|
|
33
|
-
export declare function ThemedButton({ title, variant, loading, fullWidth, disabled, style, textStyle, ...props }: ThemedButtonProps): React.JSX.Element;
|
|
33
|
+
export declare function ThemedButton({ title, variant, loading, fullWidth, disabled, style, textStyle, onPressIn: onPressInProp, onPressOut: onPressOutProp, ...props }: ThemedButtonProps): React.JSX.Element;
|
|
34
34
|
//# sourceMappingURL=ThemedButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemedButton.d.ts","sourceRoot":"","sources":["../../src/components/ThemedButton.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ThemedButton.d.ts","sourceRoot":"","sources":["../../src/components/ThemedButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,SAAS,EAEV,MAAM,cAAc,CAAC;AAKtB,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAE9D,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC;IACnF,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,4CAA4C;IAC5C,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAClC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,OAAmB,EACnB,OAAe,EACf,SAAiB,EACjB,QAAQ,EACR,KAAK,EACL,SAAS,EACT,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,cAAc,EAC1B,GAAG,KAAK,EACT,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAuGvC"}
|
|
@@ -1,12 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
5
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
36
|
exports.ThemedButton = ThemedButton;
|
|
7
|
-
const react_1 =
|
|
37
|
+
const react_1 = __importStar(require("react"));
|
|
8
38
|
const react_native_1 = require("react-native");
|
|
9
39
|
const hooks_1 = require("../hooks");
|
|
40
|
+
const usePressedState_1 = require("../hooks/usePressedState");
|
|
10
41
|
const ThemedText_1 = require("./ThemedText");
|
|
11
42
|
/**
|
|
12
43
|
* Themed button component with Harken styling.
|
|
@@ -20,20 +51,30 @@ const ThemedText_1 = require("./ThemedText");
|
|
|
20
51
|
* - `sizing.buttonMinHeight` for minimum height
|
|
21
52
|
* - `opacity.disabled` for disabled state
|
|
22
53
|
*/
|
|
23
|
-
function ThemedButton({ title, variant = "primary", loading = false, fullWidth = false, disabled, style, textStyle, ...props }) {
|
|
54
|
+
function ThemedButton({ title, variant = "primary", loading = false, fullWidth = false, disabled, style, textStyle, onPressIn: onPressInProp, onPressOut: onPressOutProp, ...props }) {
|
|
24
55
|
const theme = (0, hooks_1.useHarkenTheme)();
|
|
25
56
|
const { button } = theme.components;
|
|
26
|
-
const
|
|
57
|
+
const { isPressed, onPressIn: onPressInHook, onPressOut: onPressOutHook, } = (0, usePressedState_1.usePressedState)(disabled || loading);
|
|
58
|
+
// Compose press handlers to support both internal state and consumer callbacks
|
|
59
|
+
const handlePressIn = (0, react_1.useCallback)((e) => {
|
|
60
|
+
onPressInHook();
|
|
61
|
+
onPressInProp?.(e);
|
|
62
|
+
}, [onPressInHook, onPressInProp]);
|
|
63
|
+
const handlePressOut = (0, react_1.useCallback)((e) => {
|
|
64
|
+
onPressOutHook();
|
|
65
|
+
onPressOutProp?.(e);
|
|
66
|
+
}, [onPressOutHook, onPressOutProp]);
|
|
67
|
+
const getBackgroundColor = () => {
|
|
27
68
|
if (disabled) {
|
|
28
69
|
return variant === "primary" ? theme.colors.border : "transparent";
|
|
29
70
|
}
|
|
30
71
|
switch (variant) {
|
|
31
72
|
case "primary":
|
|
32
|
-
return
|
|
73
|
+
return isPressed ? button.primary.backgroundPressed : button.primary.background;
|
|
33
74
|
case "secondary":
|
|
34
|
-
return
|
|
75
|
+
return isPressed ? theme.colors.border : button.secondary.background;
|
|
35
76
|
case "ghost":
|
|
36
|
-
return
|
|
77
|
+
return isPressed ? theme.colors.surface : "transparent";
|
|
37
78
|
}
|
|
38
79
|
};
|
|
39
80
|
const getTextColor = () => {
|
|
@@ -59,25 +100,23 @@ function ThemedButton({ title, variant = "primary", loading = false, fullWidth =
|
|
|
59
100
|
};
|
|
60
101
|
// Flatten the style prop to handle arrays and registered styles
|
|
61
102
|
const flattenedStyle = style ? react_native_1.StyleSheet.flatten(style) : undefined;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
return [baseStyle, flattenedStyle];
|
|
80
|
-
}} {...props}>
|
|
103
|
+
const baseStyle = {
|
|
104
|
+
backgroundColor: getBackgroundColor(),
|
|
105
|
+
borderWidth: variant === "secondary" ? 1 : 0,
|
|
106
|
+
borderColor: getBorderColor(),
|
|
107
|
+
borderRadius: button.radius,
|
|
108
|
+
paddingVertical: button.paddingVertical,
|
|
109
|
+
paddingHorizontal: button.paddingHorizontal,
|
|
110
|
+
alignItems: "center",
|
|
111
|
+
justifyContent: "center",
|
|
112
|
+
flexDirection: "row",
|
|
113
|
+
minHeight: button.minHeight,
|
|
114
|
+
opacity: disabled ? theme.opacity.disabled : 1,
|
|
115
|
+
};
|
|
116
|
+
if (fullWidth) {
|
|
117
|
+
baseStyle.width = "100%";
|
|
118
|
+
}
|
|
119
|
+
return (<react_native_1.Pressable disabled={disabled || loading} onPressIn={handlePressIn} onPressOut={handlePressOut} style={[baseStyle, flattenedStyle]} {...props}>
|
|
81
120
|
{loading ? (<react_native_1.ActivityIndicator color={getTextColor()} size="small"/>) : (<ThemedText_1.ThemedText variant="label" color={getTextColor()} style={textStyle}>
|
|
82
121
|
{title}
|
|
83
122
|
</ThemedText_1.ThemedText>)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemedButton.js","sourceRoot":"","sources":["../../src/components/ThemedButton.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ThemedButton.js","sourceRoot":"","sources":["../../src/components/ThemedButton.tsx"],"names":[],"mappings":"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"}
|