@studio-piot/native-ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +15 -0
- package/README.md +91 -0
- package/dist/components/Button/Button.d.ts +16 -0
- package/dist/components/Button/Button.d.ts.map +1 -0
- package/dist/components/Button/Button.js +44 -0
- package/dist/components/Button/Button.js.map +1 -0
- package/dist/components/Button/buttonRadius.d.ts +3 -0
- package/dist/components/Button/buttonRadius.d.ts.map +1 -0
- package/dist/components/Button/buttonRadius.js +17 -0
- package/dist/components/Button/buttonRadius.js.map +1 -0
- package/dist/components/Button/index.d.ts +3 -0
- package/dist/components/Button/index.d.ts.map +1 -0
- package/dist/components/Button/index.js +8 -0
- package/dist/components/Button/index.js.map +1 -0
- package/dist/components/Field/FieldText.d.ts +3 -0
- package/dist/components/Field/FieldText.d.ts.map +1 -0
- package/dist/components/Field/FieldText.js +9 -0
- package/dist/components/Field/FieldText.js.map +1 -0
- package/dist/components/Field/FieldTextarea.d.ts +3 -0
- package/dist/components/Field/FieldTextarea.d.ts.map +1 -0
- package/dist/components/Field/FieldTextarea.js +10 -0
- package/dist/components/Field/FieldTextarea.js.map +1 -0
- package/dist/components/Field/fieldChrome.d.ts +10 -0
- package/dist/components/Field/fieldChrome.d.ts.map +1 -0
- package/dist/components/Field/fieldChrome.js +100 -0
- package/dist/components/Field/fieldChrome.js.map +1 -0
- package/dist/components/Field/fieldThemeRoles.d.ts +13 -0
- package/dist/components/Field/fieldThemeRoles.d.ts.map +1 -0
- package/dist/components/Field/fieldThemeRoles.js +15 -0
- package/dist/components/Field/fieldThemeRoles.js.map +1 -0
- package/dist/components/Field/index.d.ts +6 -0
- package/dist/components/Field/index.d.ts.map +1 -0
- package/dist/components/Field/index.js +10 -0
- package/dist/components/Field/index.js.map +1 -0
- package/dist/components/Field/resolveFieldBorder.d.ts +16 -0
- package/dist/components/Field/resolveFieldBorder.d.ts.map +1 -0
- package/dist/components/Field/resolveFieldBorder.js +20 -0
- package/dist/components/Field/resolveFieldBorder.js.map +1 -0
- package/dist/components/Field/resolveFieldColor.d.ts +7 -0
- package/dist/components/Field/resolveFieldColor.d.ts.map +1 -0
- package/dist/components/Field/resolveFieldColor.js +21 -0
- package/dist/components/Field/resolveFieldColor.js.map +1 -0
- package/dist/components/Field/types.d.ts +46 -0
- package/dist/components/Field/types.d.ts.map +1 -0
- package/dist/components/Field/types.js +3 -0
- package/dist/components/Field/types.js.map +1 -0
- package/dist/components/Field/useResolvedFieldColor.d.ts +2 -0
- package/dist/components/Field/useResolvedFieldColor.d.ts.map +1 -0
- package/dist/components/Field/useResolvedFieldColor.js +15 -0
- package/dist/components/Field/useResolvedFieldColor.js.map +1 -0
- package/dist/components/Form/Form.d.ts +3 -0
- package/dist/components/Form/Form.d.ts.map +1 -0
- package/dist/components/Form/Form.js +100 -0
- package/dist/components/Form/Form.js.map +1 -0
- package/dist/components/Form/FormCloseButton.d.ts +4 -0
- package/dist/components/Form/FormCloseButton.d.ts.map +1 -0
- package/dist/components/Form/FormCloseButton.js +17 -0
- package/dist/components/Form/FormCloseButton.js.map +1 -0
- package/dist/components/Form/index.d.ts +4 -0
- package/dist/components/Form/index.d.ts.map +1 -0
- package/dist/components/Form/index.js +8 -0
- package/dist/components/Form/index.js.map +1 -0
- package/dist/components/Form/resolveThemeColor.d.ts +11 -0
- package/dist/components/Form/resolveThemeColor.d.ts.map +1 -0
- package/dist/components/Form/resolveThemeColor.js +21 -0
- package/dist/components/Form/resolveThemeColor.js.map +1 -0
- package/dist/components/Form/types.d.ts +30 -0
- package/dist/components/Form/types.d.ts.map +1 -0
- package/dist/components/Form/types.js +3 -0
- package/dist/components/Form/types.js.map +1 -0
- package/dist/components/Form/useResolvedThemeColor.d.ts +2 -0
- package/dist/components/Form/useResolvedThemeColor.d.ts.map +1 -0
- package/dist/components/Form/useResolvedThemeColor.js +15 -0
- package/dist/components/Form/useResolvedThemeColor.js.map +1 -0
- package/dist/components/Form/withAlpha.d.ts +2 -0
- package/dist/components/Form/withAlpha.d.ts.map +1 -0
- package/dist/components/Form/withAlpha.js +12 -0
- package/dist/components/Form/withAlpha.js.map +1 -0
- package/dist/components/LinkBlocks/LinkBlocks.d.ts +3 -0
- package/dist/components/LinkBlocks/LinkBlocks.d.ts.map +1 -0
- package/dist/components/LinkBlocks/LinkBlocks.js +75 -0
- package/dist/components/LinkBlocks/LinkBlocks.js.map +1 -0
- package/dist/components/LinkBlocks/filterGroups.d.ts +3 -0
- package/dist/components/LinkBlocks/filterGroups.d.ts.map +1 -0
- package/dist/components/LinkBlocks/filterGroups.js +7 -0
- package/dist/components/LinkBlocks/filterGroups.js.map +1 -0
- package/dist/components/LinkBlocks/index.d.ts +4 -0
- package/dist/components/LinkBlocks/index.d.ts.map +1 -0
- package/dist/components/LinkBlocks/index.js +8 -0
- package/dist/components/LinkBlocks/index.js.map +1 -0
- package/dist/components/LinkBlocks/types.d.ts +26 -0
- package/dist/components/LinkBlocks/types.d.ts.map +1 -0
- package/dist/components/LinkBlocks/types.js +3 -0
- package/dist/components/LinkBlocks/types.js.map +1 -0
- package/dist/components/RadioField/RadioField.d.ts +3 -0
- package/dist/components/RadioField/RadioField.d.ts.map +1 -0
- package/dist/components/RadioField/RadioField.js +76 -0
- package/dist/components/RadioField/RadioField.js.map +1 -0
- package/dist/components/RadioField/RadioMark.d.ts +7 -0
- package/dist/components/RadioField/RadioMark.d.ts.map +1 -0
- package/dist/components/RadioField/RadioMark.js +32 -0
- package/dist/components/RadioField/RadioMark.js.map +1 -0
- package/dist/components/RadioField/index.d.ts +4 -0
- package/dist/components/RadioField/index.d.ts.map +1 -0
- package/dist/components/RadioField/index.js +8 -0
- package/dist/components/RadioField/index.js.map +1 -0
- package/dist/components/RadioField/radioThemeRoles.d.ts +11 -0
- package/dist/components/RadioField/radioThemeRoles.d.ts.map +1 -0
- package/dist/components/RadioField/radioThemeRoles.js +13 -0
- package/dist/components/RadioField/radioThemeRoles.js.map +1 -0
- package/dist/components/RadioField/types.d.ts +24 -0
- package/dist/components/RadioField/types.d.ts.map +1 -0
- package/dist/components/RadioField/types.js +3 -0
- package/dist/components/RadioField/types.js.map +1 -0
- package/dist/components/Select/Select.d.ts +3 -0
- package/dist/components/Select/Select.d.ts.map +1 -0
- package/dist/components/Select/Select.js +137 -0
- package/dist/components/Select/Select.js.map +1 -0
- package/dist/components/Select/SelectCloseButton.d.ts +4 -0
- package/dist/components/Select/SelectCloseButton.d.ts.map +1 -0
- package/dist/components/Select/SelectCloseButton.js +17 -0
- package/dist/components/Select/SelectCloseButton.js.map +1 -0
- package/dist/components/Select/index.d.ts +6 -0
- package/dist/components/Select/index.d.ts.map +1 -0
- package/dist/components/Select/index.js +14 -0
- package/dist/components/Select/index.js.map +1 -0
- package/dist/components/Select/resolveSelectDetentIndex.d.ts +9 -0
- package/dist/components/Select/resolveSelectDetentIndex.d.ts.map +1 -0
- package/dist/components/Select/resolveSelectDetentIndex.js +16 -0
- package/dist/components/Select/resolveSelectDetentIndex.js.map +1 -0
- package/dist/components/Select/selectThemeRoles.d.ts +12 -0
- package/dist/components/Select/selectThemeRoles.d.ts.map +1 -0
- package/dist/components/Select/selectThemeRoles.js +14 -0
- package/dist/components/Select/selectThemeRoles.js.map +1 -0
- package/dist/components/Select/types.d.ts +35 -0
- package/dist/components/Select/types.d.ts.map +1 -0
- package/dist/components/Select/types.js +3 -0
- package/dist/components/Select/types.js.map +1 -0
- package/dist/components/index.d.ts +7 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +27 -0
- package/dist/components/index.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +66 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/index.d.ts +2 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +6 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/layout/screenPadding.d.ts +3 -0
- package/dist/layout/screenPadding.d.ts.map +1 -0
- package/dist/layout/screenPadding.js +6 -0
- package/dist/layout/screenPadding.js.map +1 -0
- package/dist/theme/ThemeProvider.d.ts +11 -0
- package/dist/theme/ThemeProvider.d.ts.map +1 -0
- package/dist/theme/ThemeProvider.js +11 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/index.d.ts +6 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +12 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/resolveColorScheme.d.ts +2 -0
- package/dist/theme/resolveColorScheme.d.ts.map +1 -0
- package/dist/theme/resolveColorScheme.js +7 -0
- package/dist/theme/resolveColorScheme.js.map +1 -0
- package/dist/theme/types.d.ts +8 -0
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/types.js +3 -0
- package/dist/theme/types.js.map +1 -0
- package/dist/theme/useColorScheme.d.ts +2 -0
- package/dist/theme/useColorScheme.d.ts.map +1 -0
- package/dist/theme/useColorScheme.js +16 -0
- package/dist/theme/useColorScheme.js.map +1 -0
- package/dist/theme/useThemeColor.d.ts +5 -0
- package/dist/theme/useThemeColor.d.ts.map +1 -0
- package/dist/theme/useThemeColor.js +25 -0
- package/dist/theme/useThemeColor.js.map +1 -0
- package/docs/components/button.md +162 -0
- package/docs/components/field.md +128 -0
- package/docs/components/form.md +86 -0
- package/docs/components/link-blocks.md +120 -0
- package/docs/components/radio-field.md +100 -0
- package/docs/components/select.md +59 -0
- package/docs/superpowers/plans/2026-09-24-field.md +583 -0
- package/docs/superpowers/plans/2026-09-24-link-blocks.md +414 -0
- package/docs/superpowers/plans/2026-09-24-theme-provider-button.md +493 -0
- package/docs/superpowers/plans/2026-09-25-radio-field.md +516 -0
- package/docs/superpowers/plans/2026-09-25-select.md +22 -0
- package/docs/superpowers/specs/2026-09-24-field-design.md +205 -0
- package/docs/superpowers/specs/2026-09-24-link-blocks-design.md +167 -0
- package/docs/superpowers/specs/2026-09-24-theme-provider-button-design.md +178 -0
- package/docs/superpowers/specs/2026-09-25-radio-field-design.md +136 -0
- package/docs/superpowers/specs/2026-09-25-select-design.md +164 -0
- package/package.json +75 -0
- package/src/components/Button/Button.tsx +97 -0
- package/src/components/Button/buttonRadius.test.ts +16 -0
- package/src/components/Button/buttonRadius.ts +24 -0
- package/src/components/Button/index.ts +2 -0
- package/src/components/Field/FieldText.tsx +6 -0
- package/src/components/Field/FieldTextarea.tsx +18 -0
- package/src/components/Field/fieldChrome.tsx +219 -0
- package/src/components/Field/fieldThemeRoles.ts +13 -0
- package/src/components/Field/index.ts +5 -0
- package/src/components/Field/resolveFieldBorder.test.ts +76 -0
- package/src/components/Field/resolveFieldBorder.ts +40 -0
- package/src/components/Field/resolveFieldColor.test.ts +92 -0
- package/src/components/Field/resolveFieldColor.ts +26 -0
- package/src/components/Field/types.ts +53 -0
- package/src/components/Field/useResolvedFieldColor.ts +15 -0
- package/src/components/Form/Form.tsx +205 -0
- package/src/components/Form/FormCloseButton.tsx +19 -0
- package/src/components/Form/index.ts +3 -0
- package/src/components/Form/resolveThemeColor.ts +24 -0
- package/src/components/Form/types.ts +30 -0
- package/src/components/Form/useResolvedThemeColor.ts +15 -0
- package/src/components/Form/withAlpha.test.ts +13 -0
- package/src/components/Form/withAlpha.ts +9 -0
- package/src/components/LinkBlocks/LinkBlocks.tsx +165 -0
- package/src/components/LinkBlocks/filterGroups.test.ts +37 -0
- package/src/components/LinkBlocks/filterGroups.ts +7 -0
- package/src/components/LinkBlocks/index.ts +7 -0
- package/src/components/LinkBlocks/types.ts +28 -0
- package/src/components/RadioField/RadioField.tsx +168 -0
- package/src/components/RadioField/RadioMark.tsx +54 -0
- package/src/components/RadioField/index.ts +3 -0
- package/src/components/RadioField/radioThemeRoles.test.ts +15 -0
- package/src/components/RadioField/radioThemeRoles.ts +11 -0
- package/src/components/RadioField/types.ts +25 -0
- package/src/components/Select/Select.tsx +279 -0
- package/src/components/Select/SelectCloseButton.tsx +19 -0
- package/src/components/Select/index.ts +13 -0
- package/src/components/Select/resolveSelectDetentIndex.test.ts +20 -0
- package/src/components/Select/resolveSelectDetentIndex.ts +16 -0
- package/src/components/Select/selectThemeRoles.ts +12 -0
- package/src/components/Select/types.ts +39 -0
- package/src/components/index.ts +42 -0
- package/src/index.ts +50 -0
- package/src/layout/index.ts +1 -0
- package/src/layout/screenPadding.ts +2 -0
- package/src/theme/ThemeProvider.tsx +20 -0
- package/src/theme/index.ts +5 -0
- package/src/theme/resolveColorScheme.test.ts +16 -0
- package/src/theme/resolveColorScheme.ts +5 -0
- package/src/theme/types.ts +5 -0
- package/src/theme/useColorScheme.ts +13 -0
- package/src/theme/useThemeColor.ts +25 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RadioField = RadioField;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_native_1 = require("react-native");
|
|
6
|
+
const buttonRadius_1 = require("../Button/buttonRadius");
|
|
7
|
+
const useResolvedFieldColor_1 = require("../Field/useResolvedFieldColor");
|
|
8
|
+
const RadioMark_1 = require("./RadioMark");
|
|
9
|
+
const radioThemeRoles_1 = require("./radioThemeRoles");
|
|
10
|
+
const ROW_PAD_H = 16;
|
|
11
|
+
function RadioField({ value, onChange, options, label, radius = "xl", backgroundColor: backgroundColorProp, labelColor: labelColorProp, descriptionColor: descriptionColorProp, dividerColor: dividerColorProp, radioColor: radioColorProp, selectedColor: selectedColorProp, titleColor: titleColorProp, style, }) {
|
|
12
|
+
const backgroundColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(backgroundColorProp, radioThemeRoles_1.RADIO_THEME_ROLES.backgroundColor);
|
|
13
|
+
const labelColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(labelColorProp, radioThemeRoles_1.RADIO_THEME_ROLES.labelColor);
|
|
14
|
+
const descriptionColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(descriptionColorProp, radioThemeRoles_1.RADIO_THEME_ROLES.descriptionColor);
|
|
15
|
+
const dividerColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(dividerColorProp, radioThemeRoles_1.RADIO_THEME_ROLES.dividerColor);
|
|
16
|
+
const radioColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(radioColorProp, radioThemeRoles_1.RADIO_THEME_ROLES.radioColor);
|
|
17
|
+
const selectedColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(selectedColorProp, radioThemeRoles_1.RADIO_THEME_ROLES.selectedColor);
|
|
18
|
+
const titleColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(titleColorProp, radioThemeRoles_1.RADIO_THEME_ROLES.titleColor);
|
|
19
|
+
const borderRadius = (0, buttonRadius_1.buttonRadiusValue)(radius);
|
|
20
|
+
if (options.length === 0) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.group, style], children: [label ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.title, { color: titleColor }], children: label })) : null, (0, jsx_runtime_1.jsx)(react_native_1.View, { accessibilityRole: "radiogroup", ...(label ? { accessibilityLabel: label } : {}), style: [
|
|
24
|
+
styles.surface,
|
|
25
|
+
{ backgroundColor, borderRadius },
|
|
26
|
+
], children: options.map((option, index) => {
|
|
27
|
+
const selected = value === option.value;
|
|
28
|
+
return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { children: [index > 0 ? ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [styles.divider, { backgroundColor: dividerColor }] })) : null, (0, jsx_runtime_1.jsxs)(react_native_1.TouchableOpacity, { accessibilityLabel: option.description
|
|
29
|
+
? `${option.label}. ${option.description}`
|
|
30
|
+
: option.label, accessibilityRole: "radio", accessibilityState: {
|
|
31
|
+
selected,
|
|
32
|
+
checked: selected,
|
|
33
|
+
disabled: !!option.disabled,
|
|
34
|
+
}, activeOpacity: 0.75, disabled: option.disabled, onPress: () => onChange(option.value), style: [styles.row, option.disabled && styles.blocked], children: [(0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.textCol, children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.label, { color: labelColor }], children: option.label }), option.description ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.description, { color: descriptionColor }], children: option.description })) : null] }), (0, jsx_runtime_1.jsx)(RadioMark_1.RadioMark, { holeColor: backgroundColor, radioColor: radioColor, selected: selected, selectedColor: selectedColor })] })] }, option.value));
|
|
35
|
+
}) })] }));
|
|
36
|
+
}
|
|
37
|
+
const styles = react_native_1.StyleSheet.create({
|
|
38
|
+
group: {
|
|
39
|
+
width: "100%",
|
|
40
|
+
gap: 8,
|
|
41
|
+
},
|
|
42
|
+
title: {
|
|
43
|
+
fontSize: 13,
|
|
44
|
+
fontWeight: "600",
|
|
45
|
+
paddingHorizontal: 4,
|
|
46
|
+
},
|
|
47
|
+
surface: {
|
|
48
|
+
width: "100%",
|
|
49
|
+
overflow: "hidden",
|
|
50
|
+
},
|
|
51
|
+
row: {
|
|
52
|
+
minHeight: 52,
|
|
53
|
+
paddingHorizontal: ROW_PAD_H,
|
|
54
|
+
paddingVertical: 10,
|
|
55
|
+
flexDirection: "row",
|
|
56
|
+
alignItems: "center",
|
|
57
|
+
gap: 12,
|
|
58
|
+
},
|
|
59
|
+
blocked: {
|
|
60
|
+
opacity: 0.4,
|
|
61
|
+
},
|
|
62
|
+
textCol: {
|
|
63
|
+
flex: 1,
|
|
64
|
+
gap: 2,
|
|
65
|
+
},
|
|
66
|
+
label: {
|
|
67
|
+
fontSize: 17,
|
|
68
|
+
},
|
|
69
|
+
description: {
|
|
70
|
+
fontSize: 13,
|
|
71
|
+
},
|
|
72
|
+
divider: {
|
|
73
|
+
height: react_native_1.StyleSheet.hairlineWidth,
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=RadioField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioField.js","sourceRoot":"","sources":["../../../src/components/RadioField/RadioField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioMark.d.ts","sourceRoot":"","sources":["../../../src/components/RadioField/RadioMark.tsx"],"names":[],"mappings":"AAKA,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,UAAU,EACV,aAAa,EACb,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,+BAsBA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RadioMark = RadioMark;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_native_1 = require("react-native");
|
|
6
|
+
const SIZE = 22;
|
|
7
|
+
const DOT = 8;
|
|
8
|
+
function RadioMark({ selected, radioColor, selectedColor, holeColor, }) {
|
|
9
|
+
if (selected) {
|
|
10
|
+
return ((0, jsx_runtime_1.jsx)(react_native_1.View, { accessibilityElementsHidden: true, importantForAccessibility: "no", style: [
|
|
11
|
+
styles.outer,
|
|
12
|
+
{ backgroundColor: selectedColor, borderColor: selectedColor },
|
|
13
|
+
], children: (0, jsx_runtime_1.jsx)(react_native_1.View, { style: [styles.dot, { backgroundColor: holeColor }] }) }));
|
|
14
|
+
}
|
|
15
|
+
return ((0, jsx_runtime_1.jsx)(react_native_1.View, { accessibilityElementsHidden: true, importantForAccessibility: "no", style: [styles.outer, { borderColor: radioColor }] }));
|
|
16
|
+
}
|
|
17
|
+
const styles = react_native_1.StyleSheet.create({
|
|
18
|
+
outer: {
|
|
19
|
+
width: SIZE,
|
|
20
|
+
height: SIZE,
|
|
21
|
+
borderRadius: SIZE / 2,
|
|
22
|
+
borderWidth: 2,
|
|
23
|
+
alignItems: "center",
|
|
24
|
+
justifyContent: "center",
|
|
25
|
+
},
|
|
26
|
+
dot: {
|
|
27
|
+
width: DOT,
|
|
28
|
+
height: DOT,
|
|
29
|
+
borderRadius: DOT / 2,
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=RadioMark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioMark.js","sourceRoot":"","sources":["../../../src/components/RadioField/RadioMark.tsx"],"names":[],"mappings":";;AAKA,8BAgCC;;AArCD,+CAAgD;AAEhD,MAAM,IAAI,GAAG,EAAE,CAAC;AAChB,MAAM,GAAG,GAAG,CAAC,CAAC;AAEd,SAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,UAAU,EACV,aAAa,EACb,SAAS,GAMV;IACC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CACL,uBAAC,mBAAI,IACH,2BAA2B,QAC3B,yBAAyB,EAAC,IAAI,EAC9B,KAAK,EAAE;gBACL,MAAM,CAAC,KAAK;gBACZ,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE;aAC/D,YAED,uBAAC,mBAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,GAAI,GACxD,CACR,CAAC;IACJ,CAAC;IACD,OAAO,CACL,uBAAC,mBAAI,IACH,2BAA2B,QAC3B,yBAAyB,EAAC,IAAI,EAC9B,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,GAClD,CACH,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE;QACL,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,IAAI,GAAG,CAAC;QACtB,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;KACzB;IACD,GAAG,EAAE;QACH,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,YAAY,EAAE,GAAG,GAAG,CAAC;KACtB;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/RadioField/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RADIO_THEME_ROLES = exports.RadioField = void 0;
|
|
4
|
+
var RadioField_1 = require("./RadioField");
|
|
5
|
+
Object.defineProperty(exports, "RadioField", { enumerable: true, get: function () { return RadioField_1.RadioField; } });
|
|
6
|
+
var radioThemeRoles_1 = require("./radioThemeRoles");
|
|
7
|
+
Object.defineProperty(exports, "RADIO_THEME_ROLES", { enumerable: true, get: function () { return radioThemeRoles_1.RADIO_THEME_ROLES; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/RadioField/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,qDAAgF;AAAvE,oHAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const RADIO_THEME_ROLES: {
|
|
2
|
+
readonly backgroundColor: "fieldBackground";
|
|
3
|
+
readonly labelColor: "fieldText";
|
|
4
|
+
readonly descriptionColor: "fieldDescription";
|
|
5
|
+
readonly dividerColor: "fieldBorder";
|
|
6
|
+
readonly radioColor: "fieldBorder";
|
|
7
|
+
readonly selectedColor: "fieldRadioSelected";
|
|
8
|
+
readonly titleColor: "fieldLabel";
|
|
9
|
+
};
|
|
10
|
+
export type RadioThemeColorProp = keyof typeof RADIO_THEME_ROLES;
|
|
11
|
+
//# sourceMappingURL=radioThemeRoles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radioThemeRoles.d.ts","sourceRoot":"","sources":["../../../src/components/RadioField/radioThemeRoles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB;;;;;;;;CAQpB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RADIO_THEME_ROLES = void 0;
|
|
4
|
+
exports.RADIO_THEME_ROLES = {
|
|
5
|
+
backgroundColor: "fieldBackground",
|
|
6
|
+
labelColor: "fieldText",
|
|
7
|
+
descriptionColor: "fieldDescription",
|
|
8
|
+
dividerColor: "fieldBorder",
|
|
9
|
+
radioColor: "fieldBorder",
|
|
10
|
+
selectedColor: "fieldRadioSelected",
|
|
11
|
+
titleColor: "fieldLabel",
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=radioThemeRoles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radioThemeRoles.js","sourceRoot":"","sources":["../../../src/components/RadioField/radioThemeRoles.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG;IAC/B,eAAe,EAAE,iBAAiB;IAClC,UAAU,EAAE,WAAW;IACvB,gBAAgB,EAAE,kBAAkB;IACpC,YAAY,EAAE,aAAa;IAC3B,UAAU,EAAE,aAAa;IACzB,aAAa,EAAE,oBAAoB;IACnC,UAAU,EAAE,YAAY;CAChB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { StyleProp, ViewStyle } from "react-native";
|
|
2
|
+
import type { ButtonRadius } from "../Button/buttonRadius";
|
|
3
|
+
export type RadioOption<T extends string = string> = {
|
|
4
|
+
value: T;
|
|
5
|
+
label: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type RadioFieldProps<T extends string = string> = {
|
|
10
|
+
value: T | null;
|
|
11
|
+
onChange: (value: T) => void;
|
|
12
|
+
options: RadioOption<T>[];
|
|
13
|
+
label?: string;
|
|
14
|
+
radius?: ButtonRadius;
|
|
15
|
+
backgroundColor?: string;
|
|
16
|
+
labelColor?: string;
|
|
17
|
+
descriptionColor?: string;
|
|
18
|
+
dividerColor?: string;
|
|
19
|
+
radioColor?: string;
|
|
20
|
+
selectedColor?: string;
|
|
21
|
+
titleColor?: string;
|
|
22
|
+
style?: StyleProp<ViewStyle>;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/RadioField/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACnD,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACvD,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/RadioField/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { SelectProps } from "./types";
|
|
2
|
+
export declare function Select({ value, onChange, options, placeholder, label, description, error, sheetTitle, closeButton, detents, initialDetent, radius, editable, backgroundColor: backgroundColorProp, textColor: textColorProp, placeholderColor: placeholderColorProp, labelColor: labelColorProp, descriptionColor: descriptionColorProp, borderColor: borderColorProp, errorColor: errorColorProp, selectedColor: selectedColorProp, style, }: SelectProps): import("react").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=Select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,SAAS,CAAC;AAEzD,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,WAAgC,EAChC,KAAK,EACL,WAAW,EACX,KAAK,EACL,UAAU,EACV,WAAW,EACX,OAAqC,EACrC,aAA6C,EAC7C,MAAa,EACb,QAAe,EACf,eAAe,EAAE,mBAAmB,EACpC,SAAS,EAAE,aAAa,EACxB,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,EAAE,cAAc,EAC1B,gBAAgB,EAAE,oBAAoB,EACtC,WAAW,EAAE,eAAe,EAC5B,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,iBAAiB,EAChC,KAAK,GACN,EAAE,WAAW,+BA8Kb"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Select = Select;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_native_1 = require("react-native");
|
|
7
|
+
const react_native_true_sheet_1 = require("@lodev09/react-native-true-sheet");
|
|
8
|
+
const buttonRadius_1 = require("../Button/buttonRadius");
|
|
9
|
+
const useResolvedFieldColor_1 = require("../Field/useResolvedFieldColor");
|
|
10
|
+
const resolveSelectDetentIndex_1 = require("./resolveSelectDetentIndex");
|
|
11
|
+
const SelectCloseButton_1 = require("./SelectCloseButton");
|
|
12
|
+
const selectThemeRoles_1 = require("./selectThemeRoles");
|
|
13
|
+
function Select({ value, onChange, options, placeholder = "Select an option", label, description, error, sheetTitle, closeButton, detents = [...resolveSelectDetentIndex_1.DEFAULT_SELECT_DETENTS], initialDetent = resolveSelectDetentIndex_1.DEFAULT_SELECT_INITIAL_DETENT, radius = "xl", editable = true, backgroundColor: backgroundColorProp, textColor: textColorProp, placeholderColor: placeholderColorProp, labelColor: labelColorProp, descriptionColor: descriptionColorProp, borderColor: borderColorProp, errorColor: errorColorProp, selectedColor: selectedColorProp, style, }) {
|
|
14
|
+
const sheetRef = (0, react_1.useRef)(null);
|
|
15
|
+
const backgroundColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(backgroundColorProp, selectThemeRoles_1.SELECT_THEME_ROLES.backgroundColor);
|
|
16
|
+
const textColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(textColorProp, selectThemeRoles_1.SELECT_THEME_ROLES.textColor);
|
|
17
|
+
const placeholderColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(placeholderColorProp, selectThemeRoles_1.SELECT_THEME_ROLES.placeholderColor);
|
|
18
|
+
const labelColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(labelColorProp, selectThemeRoles_1.SELECT_THEME_ROLES.labelColor);
|
|
19
|
+
const descriptionColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(descriptionColorProp, selectThemeRoles_1.SELECT_THEME_ROLES.descriptionColor);
|
|
20
|
+
const borderColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(borderColorProp, selectThemeRoles_1.SELECT_THEME_ROLES.borderColor);
|
|
21
|
+
const errorColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(errorColorProp, selectThemeRoles_1.SELECT_THEME_ROLES.errorColor);
|
|
22
|
+
const selectedColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(selectedColorProp, selectThemeRoles_1.SELECT_THEME_ROLES.selectedColor);
|
|
23
|
+
const hasError = Boolean(error);
|
|
24
|
+
const selected = options.find((option) => option.value === value);
|
|
25
|
+
const display = selected?.label ?? placeholder;
|
|
26
|
+
const isPlaceholder = selected == null;
|
|
27
|
+
const borderRadius = (0, buttonRadius_1.buttonRadiusValue)(radius);
|
|
28
|
+
const title = sheetTitle ?? label ?? "Select";
|
|
29
|
+
const presentIndex = (0, resolveSelectDetentIndex_1.resolveSelectDetentIndex)(detents, initialDetent);
|
|
30
|
+
const dismiss = (0, react_1.useCallback)(() => {
|
|
31
|
+
void sheetRef.current?.dismiss();
|
|
32
|
+
}, []);
|
|
33
|
+
const present = (0, react_1.useCallback)(() => {
|
|
34
|
+
if (!editable)
|
|
35
|
+
return;
|
|
36
|
+
void sheetRef.current?.present(presentIndex);
|
|
37
|
+
}, [editable, presentIndex]);
|
|
38
|
+
const resolvedClose = typeof closeButton === "function"
|
|
39
|
+
? closeButton(dismiss)
|
|
40
|
+
: (closeButton ?? (0, jsx_runtime_1.jsx)(SelectCloseButton_1.SelectCloseButton, { onPress: dismiss }));
|
|
41
|
+
const onSelect = (option) => {
|
|
42
|
+
if (option.disabled)
|
|
43
|
+
return;
|
|
44
|
+
onChange(option.value);
|
|
45
|
+
dismiss();
|
|
46
|
+
};
|
|
47
|
+
return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.column, !editable && styles.blocked, style], children: [label ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.label, { color: labelColor }], children: label })) : null, (0, jsx_runtime_1.jsxs)(react_native_1.Pressable, { accessibilityHint: "Opens a list of options", accessibilityLabel: label ? `${label}. ${display}` : display, accessibilityRole: "button", accessibilityState: { disabled: !editable }, disabled: !editable, onPress: present, style: [
|
|
48
|
+
styles.trigger,
|
|
49
|
+
{
|
|
50
|
+
backgroundColor,
|
|
51
|
+
borderColor: hasError ? errorColor : borderColor,
|
|
52
|
+
borderRadius,
|
|
53
|
+
},
|
|
54
|
+
], children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { numberOfLines: 1, style: [
|
|
55
|
+
styles.triggerText,
|
|
56
|
+
{ color: isPlaceholder ? placeholderColor : textColor, flex: 1 },
|
|
57
|
+
], children: display }), (0, jsx_runtime_1.jsx)(react_native_1.Text, { accessibilityElementsHidden: true, importantForAccessibility: "no", style: [styles.chevron, { color: placeholderColor }], children: "\u203A" })] }), error ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.helper, { color: errorColor }], children: error })) : description ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.helper, { color: descriptionColor }], children: description })) : null, (0, jsx_runtime_1.jsxs)(react_native_true_sheet_1.TrueSheet, { ref: sheetRef, backgroundColor: backgroundColor, cornerRadius: (0, buttonRadius_1.buttonRadiusValue)("xl"), detents: detents, grabber: true, scrollable: true, children: [(0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.sheetHeader, children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { accessibilityRole: "header", numberOfLines: 1, style: [styles.sheetTitle, { color: textColor, flex: 1 }], children: title }), resolvedClose] }), options.length === 0 ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.empty, { color: placeholderColor }], children: "No options" })) : (options.map((item) => {
|
|
58
|
+
const isSelected = item.value === value;
|
|
59
|
+
return ((0, jsx_runtime_1.jsxs)(react_native_1.Pressable, { accessibilityRole: "button", accessibilityState: {
|
|
60
|
+
selected: isSelected,
|
|
61
|
+
disabled: !!item.disabled,
|
|
62
|
+
}, disabled: item.disabled, onPress: () => onSelect(item), style: [styles.option, item.disabled && styles.blocked], children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [
|
|
63
|
+
styles.optionLabel,
|
|
64
|
+
{
|
|
65
|
+
color: isSelected ? selectedColor : textColor,
|
|
66
|
+
flex: 1,
|
|
67
|
+
},
|
|
68
|
+
], children: item.label }), isSelected ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { accessibilityElementsHidden: true, importantForAccessibility: "no", style: [styles.check, { color: selectedColor }], children: "\u2713" })) : null] }, item.value));
|
|
69
|
+
}))] })] }));
|
|
70
|
+
}
|
|
71
|
+
const styles = react_native_1.StyleSheet.create({
|
|
72
|
+
column: {
|
|
73
|
+
width: "100%",
|
|
74
|
+
gap: 6,
|
|
75
|
+
},
|
|
76
|
+
blocked: {
|
|
77
|
+
opacity: 0.4,
|
|
78
|
+
},
|
|
79
|
+
label: {
|
|
80
|
+
fontSize: 13,
|
|
81
|
+
fontWeight: "600",
|
|
82
|
+
},
|
|
83
|
+
trigger: {
|
|
84
|
+
minHeight: 48,
|
|
85
|
+
borderWidth: 1,
|
|
86
|
+
paddingHorizontal: 14,
|
|
87
|
+
paddingVertical: 12,
|
|
88
|
+
flexDirection: "row",
|
|
89
|
+
alignItems: "center",
|
|
90
|
+
gap: 8,
|
|
91
|
+
},
|
|
92
|
+
triggerText: {
|
|
93
|
+
fontSize: 17,
|
|
94
|
+
},
|
|
95
|
+
chevron: {
|
|
96
|
+
fontSize: 22,
|
|
97
|
+
fontWeight: "300",
|
|
98
|
+
lineHeight: 24,
|
|
99
|
+
transform: [{ rotate: "90deg" }],
|
|
100
|
+
},
|
|
101
|
+
helper: {
|
|
102
|
+
fontSize: 13,
|
|
103
|
+
},
|
|
104
|
+
sheetHeader: {
|
|
105
|
+
flexDirection: "row",
|
|
106
|
+
alignItems: "center",
|
|
107
|
+
gap: 12,
|
|
108
|
+
paddingHorizontal: 16,
|
|
109
|
+
paddingTop: 8,
|
|
110
|
+
paddingBottom: 12,
|
|
111
|
+
},
|
|
112
|
+
sheetTitle: {
|
|
113
|
+
fontSize: 17,
|
|
114
|
+
fontWeight: "600",
|
|
115
|
+
},
|
|
116
|
+
empty: {
|
|
117
|
+
fontSize: 17,
|
|
118
|
+
paddingHorizontal: 16,
|
|
119
|
+
paddingVertical: 24,
|
|
120
|
+
textAlign: "center",
|
|
121
|
+
},
|
|
122
|
+
option: {
|
|
123
|
+
minHeight: 52,
|
|
124
|
+
paddingHorizontal: 16,
|
|
125
|
+
flexDirection: "row",
|
|
126
|
+
alignItems: "center",
|
|
127
|
+
gap: 12,
|
|
128
|
+
},
|
|
129
|
+
optionLabel: {
|
|
130
|
+
fontSize: 17,
|
|
131
|
+
},
|
|
132
|
+
check: {
|
|
133
|
+
fontSize: 17,
|
|
134
|
+
fontWeight: "600",
|
|
135
|
+
},
|
|
136
|
+
});
|
|
137
|
+
//# sourceMappingURL=Select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectCloseButton.d.ts","sourceRoot":"","sources":["../../../src/components/Select/SelectCloseButton.tsx"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,+BAQrE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SelectCloseButton = SelectCloseButton;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_native_1 = require("react-native");
|
|
6
|
+
const useThemeColor_1 = require("../../theme/useThemeColor");
|
|
7
|
+
function SelectCloseButton({ onPress }) {
|
|
8
|
+
const text = (0, useThemeColor_1.useThemeColor)("text");
|
|
9
|
+
return ((0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", hitSlop: 8, onPress: onPress, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.label, { color: text }], children: "Cancel" }) }));
|
|
10
|
+
}
|
|
11
|
+
const styles = react_native_1.StyleSheet.create({
|
|
12
|
+
label: {
|
|
13
|
+
fontSize: 17,
|
|
14
|
+
fontWeight: "600",
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=SelectCloseButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectCloseButton.js","sourceRoot":"","sources":["../../../src/components/Select/SelectCloseButton.tsx"],"names":[],"mappings":";;AAGA,8CAQC;;AAXD,+CAA2D;AAC3D,6DAA0D;AAE1D,SAAgB,iBAAiB,CAAC,EAAE,OAAO,EAA2B;IACpE,MAAM,IAAI,GAAG,IAAA,6BAAa,EAAC,MAAM,CAAC,CAAC;IAEnC,OAAO,CACL,uBAAC,wBAAS,IAAC,iBAAiB,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,YAChE,uBAAC,mBAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,uBAAe,GACjD,CACb,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;KAClB;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { Select } from "./Select";
|
|
2
|
+
export { SelectCloseButton } from "./SelectCloseButton";
|
|
3
|
+
export { DEFAULT_SELECT_DETENTS, DEFAULT_SELECT_INITIAL_DETENT, resolveSelectDetentIndex, } from "./resolveSelectDetentIndex";
|
|
4
|
+
export { SELECT_THEME_ROLES, type SelectThemeColorProp } from "./selectThemeRoles";
|
|
5
|
+
export type { SelectCloseButton as SelectCloseButtonProp, SelectOption, SelectProps, } from "./types";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Select/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACnF,YAAY,EACV,iBAAiB,IAAI,qBAAqB,EAC1C,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SELECT_THEME_ROLES = exports.resolveSelectDetentIndex = exports.DEFAULT_SELECT_INITIAL_DETENT = exports.DEFAULT_SELECT_DETENTS = exports.SelectCloseButton = exports.Select = void 0;
|
|
4
|
+
var Select_1 = require("./Select");
|
|
5
|
+
Object.defineProperty(exports, "Select", { enumerable: true, get: function () { return Select_1.Select; } });
|
|
6
|
+
var SelectCloseButton_1 = require("./SelectCloseButton");
|
|
7
|
+
Object.defineProperty(exports, "SelectCloseButton", { enumerable: true, get: function () { return SelectCloseButton_1.SelectCloseButton; } });
|
|
8
|
+
var resolveSelectDetentIndex_1 = require("./resolveSelectDetentIndex");
|
|
9
|
+
Object.defineProperty(exports, "DEFAULT_SELECT_DETENTS", { enumerable: true, get: function () { return resolveSelectDetentIndex_1.DEFAULT_SELECT_DETENTS; } });
|
|
10
|
+
Object.defineProperty(exports, "DEFAULT_SELECT_INITIAL_DETENT", { enumerable: true, get: function () { return resolveSelectDetentIndex_1.DEFAULT_SELECT_INITIAL_DETENT; } });
|
|
11
|
+
Object.defineProperty(exports, "resolveSelectDetentIndex", { enumerable: true, get: function () { return resolveSelectDetentIndex_1.resolveSelectDetentIndex; } });
|
|
12
|
+
var selectThemeRoles_1 = require("./selectThemeRoles");
|
|
13
|
+
Object.defineProperty(exports, "SELECT_THEME_ROLES", { enumerable: true, get: function () { return selectThemeRoles_1.SELECT_THEME_ROLES; } });
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Select/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,uEAIoC;AAHlC,kIAAA,sBAAsB,OAAA;AACtB,yIAAA,6BAA6B,OAAA;AAC7B,oIAAA,wBAAwB,OAAA;AAE1B,uDAAmF;AAA1E,sHAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Default sheet heights: quarter, half, three-quarter. */
|
|
2
|
+
export declare const DEFAULT_SELECT_DETENTS: readonly [0.25, 0.5, 0.75];
|
|
3
|
+
export declare const DEFAULT_SELECT_INITIAL_DETENT = 0.5;
|
|
4
|
+
/**
|
|
5
|
+
* Resolve which detent index to present at.
|
|
6
|
+
* Falls back to 0 when `initial` is missing from `detents`.
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveSelectDetentIndex(detents: readonly number[], initial: number): number;
|
|
9
|
+
//# sourceMappingURL=resolveSelectDetentIndex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveSelectDetentIndex.d.ts","sourceRoot":"","sources":["../../../src/components/Select/resolveSelectDetentIndex.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,eAAO,MAAM,sBAAsB,4BAA6B,CAAC;AAEjE,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,OAAO,EAAE,MAAM,GACd,MAAM,CAGR"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_SELECT_INITIAL_DETENT = exports.DEFAULT_SELECT_DETENTS = void 0;
|
|
4
|
+
exports.resolveSelectDetentIndex = resolveSelectDetentIndex;
|
|
5
|
+
/** Default sheet heights: quarter, half, three-quarter. */
|
|
6
|
+
exports.DEFAULT_SELECT_DETENTS = [0.25, 0.5, 0.75];
|
|
7
|
+
exports.DEFAULT_SELECT_INITIAL_DETENT = 0.5;
|
|
8
|
+
/**
|
|
9
|
+
* Resolve which detent index to present at.
|
|
10
|
+
* Falls back to 0 when `initial` is missing from `detents`.
|
|
11
|
+
*/
|
|
12
|
+
function resolveSelectDetentIndex(detents, initial) {
|
|
13
|
+
const index = detents.indexOf(initial);
|
|
14
|
+
return index >= 0 ? index : 0;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=resolveSelectDetentIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveSelectDetentIndex.js","sourceRoot":"","sources":["../../../src/components/Select/resolveSelectDetentIndex.ts"],"names":[],"mappings":";;;AASA,4DAMC;AAfD,2DAA2D;AAC9C,QAAA,sBAAsB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAU,CAAC;AAEpD,QAAA,6BAA6B,GAAG,GAAG,CAAC;AAEjD;;;GAGG;AACH,SAAgB,wBAAwB,CACtC,OAA0B,EAC1B,OAAe;IAEf,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const SELECT_THEME_ROLES: {
|
|
2
|
+
readonly backgroundColor: "fieldBackground";
|
|
3
|
+
readonly textColor: "fieldText";
|
|
4
|
+
readonly placeholderColor: "fieldPlaceholder";
|
|
5
|
+
readonly labelColor: "fieldLabel";
|
|
6
|
+
readonly descriptionColor: "fieldDescription";
|
|
7
|
+
readonly borderColor: "fieldBorder";
|
|
8
|
+
readonly errorColor: "fieldError";
|
|
9
|
+
readonly selectedColor: "fieldRadioSelected";
|
|
10
|
+
};
|
|
11
|
+
export type SelectThemeColorProp = keyof typeof SELECT_THEME_ROLES;
|
|
12
|
+
//# sourceMappingURL=selectThemeRoles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectThemeRoles.d.ts","sourceRoot":"","sources":["../../../src/components/Select/selectThemeRoles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;;;;;;CASrB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SELECT_THEME_ROLES = void 0;
|
|
4
|
+
exports.SELECT_THEME_ROLES = {
|
|
5
|
+
backgroundColor: "fieldBackground",
|
|
6
|
+
textColor: "fieldText",
|
|
7
|
+
placeholderColor: "fieldPlaceholder",
|
|
8
|
+
labelColor: "fieldLabel",
|
|
9
|
+
descriptionColor: "fieldDescription",
|
|
10
|
+
borderColor: "fieldBorder",
|
|
11
|
+
errorColor: "fieldError",
|
|
12
|
+
selectedColor: "fieldRadioSelected",
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=selectThemeRoles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectThemeRoles.js","sourceRoot":"","sources":["../../../src/components/Select/selectThemeRoles.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG;IAChC,eAAe,EAAE,iBAAiB;IAClC,SAAS,EAAE,WAAW;IACtB,gBAAgB,EAAE,kBAAkB;IACpC,UAAU,EAAE,YAAY;IACxB,gBAAgB,EAAE,kBAAkB;IACpC,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,oBAAoB;CAC3B,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { StyleProp, ViewStyle } from "react-native";
|
|
3
|
+
import type { ButtonRadius } from "../Button/buttonRadius";
|
|
4
|
+
export type SelectOption = {
|
|
5
|
+
value: string;
|
|
6
|
+
label: string;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type SelectCloseButton = ReactNode | ((dismiss: () => void) => ReactNode);
|
|
10
|
+
export type SelectProps = {
|
|
11
|
+
value: string | null;
|
|
12
|
+
onChange: (value: string) => void;
|
|
13
|
+
options: SelectOption[];
|
|
14
|
+
placeholder?: string;
|
|
15
|
+
label?: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
error?: string;
|
|
18
|
+
sheetTitle?: string;
|
|
19
|
+
/** Plain Cancel by default. Pass `(dismiss) => <Glass onPress={dismiss} />` for app chrome. */
|
|
20
|
+
closeButton?: SelectCloseButton;
|
|
21
|
+
detents?: number[];
|
|
22
|
+
initialDetent?: number;
|
|
23
|
+
radius?: ButtonRadius;
|
|
24
|
+
editable?: boolean;
|
|
25
|
+
backgroundColor?: string;
|
|
26
|
+
textColor?: string;
|
|
27
|
+
placeholderColor?: string;
|
|
28
|
+
labelColor?: string;
|
|
29
|
+
descriptionColor?: string;
|
|
30
|
+
borderColor?: string;
|
|
31
|
+
errorColor?: string;
|
|
32
|
+
selectedColor?: string;
|
|
33
|
+
style?: StyleProp<ViewStyle>;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Select/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC,CAAC;AAEzC,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/Select/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { Button, type ButtonProps, buttonRadiusValue, type ButtonRadius, } from "./Button";
|
|
2
|
+
export { LinkBlocks, filterLinkBlockGroups, type LinkBlockGroup, type LinkBlockItem, type LinkBlocksProps, } from "./LinkBlocks";
|
|
3
|
+
export { FieldText, FieldTextarea, FIELD_THEME_ROLES, type FieldThemeColorProp, type FieldSharedProps, type FieldTextProps, type FieldTextareaProps, } from "./Field";
|
|
4
|
+
export { Form, FormCloseButton, type FormProps } from "./Form";
|
|
5
|
+
export { RadioField, RADIO_THEME_ROLES, type RadioThemeColorProp, type RadioOption, type RadioFieldProps, } from "./RadioField";
|
|
6
|
+
export { Select, SelectCloseButton, SELECT_THEME_ROLES, DEFAULT_SELECT_DETENTS, DEFAULT_SELECT_INITIAL_DETENT, resolveSelectDetentIndex, type SelectThemeColorProp, type SelectOption, type SelectProps, type SelectCloseButtonProp, } from "./Select";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,WAAW,EAChB,iBAAiB,EACjB,KAAK,YAAY,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC/D,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,MAAM,EACN,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,6BAA6B,EAC7B,wBAAwB,EACxB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,qBAAqB,GAC3B,MAAM,UAAU,CAAC"}
|