@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.
Files changed (247) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +91 -0
  3. package/dist/components/Button/Button.d.ts +16 -0
  4. package/dist/components/Button/Button.d.ts.map +1 -0
  5. package/dist/components/Button/Button.js +44 -0
  6. package/dist/components/Button/Button.js.map +1 -0
  7. package/dist/components/Button/buttonRadius.d.ts +3 -0
  8. package/dist/components/Button/buttonRadius.d.ts.map +1 -0
  9. package/dist/components/Button/buttonRadius.js +17 -0
  10. package/dist/components/Button/buttonRadius.js.map +1 -0
  11. package/dist/components/Button/index.d.ts +3 -0
  12. package/dist/components/Button/index.d.ts.map +1 -0
  13. package/dist/components/Button/index.js +8 -0
  14. package/dist/components/Button/index.js.map +1 -0
  15. package/dist/components/Field/FieldText.d.ts +3 -0
  16. package/dist/components/Field/FieldText.d.ts.map +1 -0
  17. package/dist/components/Field/FieldText.js +9 -0
  18. package/dist/components/Field/FieldText.js.map +1 -0
  19. package/dist/components/Field/FieldTextarea.d.ts +3 -0
  20. package/dist/components/Field/FieldTextarea.d.ts.map +1 -0
  21. package/dist/components/Field/FieldTextarea.js +10 -0
  22. package/dist/components/Field/FieldTextarea.js.map +1 -0
  23. package/dist/components/Field/fieldChrome.d.ts +10 -0
  24. package/dist/components/Field/fieldChrome.d.ts.map +1 -0
  25. package/dist/components/Field/fieldChrome.js +100 -0
  26. package/dist/components/Field/fieldChrome.js.map +1 -0
  27. package/dist/components/Field/fieldThemeRoles.d.ts +13 -0
  28. package/dist/components/Field/fieldThemeRoles.d.ts.map +1 -0
  29. package/dist/components/Field/fieldThemeRoles.js +15 -0
  30. package/dist/components/Field/fieldThemeRoles.js.map +1 -0
  31. package/dist/components/Field/index.d.ts +6 -0
  32. package/dist/components/Field/index.d.ts.map +1 -0
  33. package/dist/components/Field/index.js +10 -0
  34. package/dist/components/Field/index.js.map +1 -0
  35. package/dist/components/Field/resolveFieldBorder.d.ts +16 -0
  36. package/dist/components/Field/resolveFieldBorder.d.ts.map +1 -0
  37. package/dist/components/Field/resolveFieldBorder.js +20 -0
  38. package/dist/components/Field/resolveFieldBorder.js.map +1 -0
  39. package/dist/components/Field/resolveFieldColor.d.ts +7 -0
  40. package/dist/components/Field/resolveFieldColor.d.ts.map +1 -0
  41. package/dist/components/Field/resolveFieldColor.js +21 -0
  42. package/dist/components/Field/resolveFieldColor.js.map +1 -0
  43. package/dist/components/Field/types.d.ts +46 -0
  44. package/dist/components/Field/types.d.ts.map +1 -0
  45. package/dist/components/Field/types.js +3 -0
  46. package/dist/components/Field/types.js.map +1 -0
  47. package/dist/components/Field/useResolvedFieldColor.d.ts +2 -0
  48. package/dist/components/Field/useResolvedFieldColor.d.ts.map +1 -0
  49. package/dist/components/Field/useResolvedFieldColor.js +15 -0
  50. package/dist/components/Field/useResolvedFieldColor.js.map +1 -0
  51. package/dist/components/Form/Form.d.ts +3 -0
  52. package/dist/components/Form/Form.d.ts.map +1 -0
  53. package/dist/components/Form/Form.js +100 -0
  54. package/dist/components/Form/Form.js.map +1 -0
  55. package/dist/components/Form/FormCloseButton.d.ts +4 -0
  56. package/dist/components/Form/FormCloseButton.d.ts.map +1 -0
  57. package/dist/components/Form/FormCloseButton.js +17 -0
  58. package/dist/components/Form/FormCloseButton.js.map +1 -0
  59. package/dist/components/Form/index.d.ts +4 -0
  60. package/dist/components/Form/index.d.ts.map +1 -0
  61. package/dist/components/Form/index.js +8 -0
  62. package/dist/components/Form/index.js.map +1 -0
  63. package/dist/components/Form/resolveThemeColor.d.ts +11 -0
  64. package/dist/components/Form/resolveThemeColor.d.ts.map +1 -0
  65. package/dist/components/Form/resolveThemeColor.js +21 -0
  66. package/dist/components/Form/resolveThemeColor.js.map +1 -0
  67. package/dist/components/Form/types.d.ts +30 -0
  68. package/dist/components/Form/types.d.ts.map +1 -0
  69. package/dist/components/Form/types.js +3 -0
  70. package/dist/components/Form/types.js.map +1 -0
  71. package/dist/components/Form/useResolvedThemeColor.d.ts +2 -0
  72. package/dist/components/Form/useResolvedThemeColor.d.ts.map +1 -0
  73. package/dist/components/Form/useResolvedThemeColor.js +15 -0
  74. package/dist/components/Form/useResolvedThemeColor.js.map +1 -0
  75. package/dist/components/Form/withAlpha.d.ts +2 -0
  76. package/dist/components/Form/withAlpha.d.ts.map +1 -0
  77. package/dist/components/Form/withAlpha.js +12 -0
  78. package/dist/components/Form/withAlpha.js.map +1 -0
  79. package/dist/components/LinkBlocks/LinkBlocks.d.ts +3 -0
  80. package/dist/components/LinkBlocks/LinkBlocks.d.ts.map +1 -0
  81. package/dist/components/LinkBlocks/LinkBlocks.js +75 -0
  82. package/dist/components/LinkBlocks/LinkBlocks.js.map +1 -0
  83. package/dist/components/LinkBlocks/filterGroups.d.ts +3 -0
  84. package/dist/components/LinkBlocks/filterGroups.d.ts.map +1 -0
  85. package/dist/components/LinkBlocks/filterGroups.js +7 -0
  86. package/dist/components/LinkBlocks/filterGroups.js.map +1 -0
  87. package/dist/components/LinkBlocks/index.d.ts +4 -0
  88. package/dist/components/LinkBlocks/index.d.ts.map +1 -0
  89. package/dist/components/LinkBlocks/index.js +8 -0
  90. package/dist/components/LinkBlocks/index.js.map +1 -0
  91. package/dist/components/LinkBlocks/types.d.ts +26 -0
  92. package/dist/components/LinkBlocks/types.d.ts.map +1 -0
  93. package/dist/components/LinkBlocks/types.js +3 -0
  94. package/dist/components/LinkBlocks/types.js.map +1 -0
  95. package/dist/components/RadioField/RadioField.d.ts +3 -0
  96. package/dist/components/RadioField/RadioField.d.ts.map +1 -0
  97. package/dist/components/RadioField/RadioField.js +76 -0
  98. package/dist/components/RadioField/RadioField.js.map +1 -0
  99. package/dist/components/RadioField/RadioMark.d.ts +7 -0
  100. package/dist/components/RadioField/RadioMark.d.ts.map +1 -0
  101. package/dist/components/RadioField/RadioMark.js +32 -0
  102. package/dist/components/RadioField/RadioMark.js.map +1 -0
  103. package/dist/components/RadioField/index.d.ts +4 -0
  104. package/dist/components/RadioField/index.d.ts.map +1 -0
  105. package/dist/components/RadioField/index.js +8 -0
  106. package/dist/components/RadioField/index.js.map +1 -0
  107. package/dist/components/RadioField/radioThemeRoles.d.ts +11 -0
  108. package/dist/components/RadioField/radioThemeRoles.d.ts.map +1 -0
  109. package/dist/components/RadioField/radioThemeRoles.js +13 -0
  110. package/dist/components/RadioField/radioThemeRoles.js.map +1 -0
  111. package/dist/components/RadioField/types.d.ts +24 -0
  112. package/dist/components/RadioField/types.d.ts.map +1 -0
  113. package/dist/components/RadioField/types.js +3 -0
  114. package/dist/components/RadioField/types.js.map +1 -0
  115. package/dist/components/Select/Select.d.ts +3 -0
  116. package/dist/components/Select/Select.d.ts.map +1 -0
  117. package/dist/components/Select/Select.js +137 -0
  118. package/dist/components/Select/Select.js.map +1 -0
  119. package/dist/components/Select/SelectCloseButton.d.ts +4 -0
  120. package/dist/components/Select/SelectCloseButton.d.ts.map +1 -0
  121. package/dist/components/Select/SelectCloseButton.js +17 -0
  122. package/dist/components/Select/SelectCloseButton.js.map +1 -0
  123. package/dist/components/Select/index.d.ts +6 -0
  124. package/dist/components/Select/index.d.ts.map +1 -0
  125. package/dist/components/Select/index.js +14 -0
  126. package/dist/components/Select/index.js.map +1 -0
  127. package/dist/components/Select/resolveSelectDetentIndex.d.ts +9 -0
  128. package/dist/components/Select/resolveSelectDetentIndex.d.ts.map +1 -0
  129. package/dist/components/Select/resolveSelectDetentIndex.js +16 -0
  130. package/dist/components/Select/resolveSelectDetentIndex.js.map +1 -0
  131. package/dist/components/Select/selectThemeRoles.d.ts +12 -0
  132. package/dist/components/Select/selectThemeRoles.d.ts.map +1 -0
  133. package/dist/components/Select/selectThemeRoles.js +14 -0
  134. package/dist/components/Select/selectThemeRoles.js.map +1 -0
  135. package/dist/components/Select/types.d.ts +35 -0
  136. package/dist/components/Select/types.d.ts.map +1 -0
  137. package/dist/components/Select/types.js +3 -0
  138. package/dist/components/Select/types.js.map +1 -0
  139. package/dist/components/index.d.ts +7 -0
  140. package/dist/components/index.d.ts.map +1 -0
  141. package/dist/components/index.js +27 -0
  142. package/dist/components/index.js.map +1 -0
  143. package/dist/index.d.ts +10 -0
  144. package/dist/index.d.ts.map +1 -0
  145. package/dist/index.js +66 -0
  146. package/dist/index.js.map +1 -0
  147. package/dist/layout/index.d.ts +2 -0
  148. package/dist/layout/index.d.ts.map +1 -0
  149. package/dist/layout/index.js +6 -0
  150. package/dist/layout/index.js.map +1 -0
  151. package/dist/layout/screenPadding.d.ts +3 -0
  152. package/dist/layout/screenPadding.d.ts.map +1 -0
  153. package/dist/layout/screenPadding.js +6 -0
  154. package/dist/layout/screenPadding.js.map +1 -0
  155. package/dist/theme/ThemeProvider.d.ts +11 -0
  156. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  157. package/dist/theme/ThemeProvider.js +11 -0
  158. package/dist/theme/ThemeProvider.js.map +1 -0
  159. package/dist/theme/index.d.ts +6 -0
  160. package/dist/theme/index.d.ts.map +1 -0
  161. package/dist/theme/index.js +12 -0
  162. package/dist/theme/index.js.map +1 -0
  163. package/dist/theme/resolveColorScheme.d.ts +2 -0
  164. package/dist/theme/resolveColorScheme.d.ts.map +1 -0
  165. package/dist/theme/resolveColorScheme.js +7 -0
  166. package/dist/theme/resolveColorScheme.js.map +1 -0
  167. package/dist/theme/types.d.ts +8 -0
  168. package/dist/theme/types.d.ts.map +1 -0
  169. package/dist/theme/types.js +3 -0
  170. package/dist/theme/types.js.map +1 -0
  171. package/dist/theme/useColorScheme.d.ts +2 -0
  172. package/dist/theme/useColorScheme.d.ts.map +1 -0
  173. package/dist/theme/useColorScheme.js +16 -0
  174. package/dist/theme/useColorScheme.js.map +1 -0
  175. package/dist/theme/useThemeColor.d.ts +5 -0
  176. package/dist/theme/useThemeColor.d.ts.map +1 -0
  177. package/dist/theme/useThemeColor.js +25 -0
  178. package/dist/theme/useThemeColor.js.map +1 -0
  179. package/docs/components/button.md +162 -0
  180. package/docs/components/field.md +128 -0
  181. package/docs/components/form.md +86 -0
  182. package/docs/components/link-blocks.md +120 -0
  183. package/docs/components/radio-field.md +100 -0
  184. package/docs/components/select.md +59 -0
  185. package/docs/superpowers/plans/2026-09-24-field.md +583 -0
  186. package/docs/superpowers/plans/2026-09-24-link-blocks.md +414 -0
  187. package/docs/superpowers/plans/2026-09-24-theme-provider-button.md +493 -0
  188. package/docs/superpowers/plans/2026-09-25-radio-field.md +516 -0
  189. package/docs/superpowers/plans/2026-09-25-select.md +22 -0
  190. package/docs/superpowers/specs/2026-09-24-field-design.md +205 -0
  191. package/docs/superpowers/specs/2026-09-24-link-blocks-design.md +167 -0
  192. package/docs/superpowers/specs/2026-09-24-theme-provider-button-design.md +178 -0
  193. package/docs/superpowers/specs/2026-09-25-radio-field-design.md +136 -0
  194. package/docs/superpowers/specs/2026-09-25-select-design.md +164 -0
  195. package/package.json +75 -0
  196. package/src/components/Button/Button.tsx +97 -0
  197. package/src/components/Button/buttonRadius.test.ts +16 -0
  198. package/src/components/Button/buttonRadius.ts +24 -0
  199. package/src/components/Button/index.ts +2 -0
  200. package/src/components/Field/FieldText.tsx +6 -0
  201. package/src/components/Field/FieldTextarea.tsx +18 -0
  202. package/src/components/Field/fieldChrome.tsx +219 -0
  203. package/src/components/Field/fieldThemeRoles.ts +13 -0
  204. package/src/components/Field/index.ts +5 -0
  205. package/src/components/Field/resolveFieldBorder.test.ts +76 -0
  206. package/src/components/Field/resolveFieldBorder.ts +40 -0
  207. package/src/components/Field/resolveFieldColor.test.ts +92 -0
  208. package/src/components/Field/resolveFieldColor.ts +26 -0
  209. package/src/components/Field/types.ts +53 -0
  210. package/src/components/Field/useResolvedFieldColor.ts +15 -0
  211. package/src/components/Form/Form.tsx +205 -0
  212. package/src/components/Form/FormCloseButton.tsx +19 -0
  213. package/src/components/Form/index.ts +3 -0
  214. package/src/components/Form/resolveThemeColor.ts +24 -0
  215. package/src/components/Form/types.ts +30 -0
  216. package/src/components/Form/useResolvedThemeColor.ts +15 -0
  217. package/src/components/Form/withAlpha.test.ts +13 -0
  218. package/src/components/Form/withAlpha.ts +9 -0
  219. package/src/components/LinkBlocks/LinkBlocks.tsx +165 -0
  220. package/src/components/LinkBlocks/filterGroups.test.ts +37 -0
  221. package/src/components/LinkBlocks/filterGroups.ts +7 -0
  222. package/src/components/LinkBlocks/index.ts +7 -0
  223. package/src/components/LinkBlocks/types.ts +28 -0
  224. package/src/components/RadioField/RadioField.tsx +168 -0
  225. package/src/components/RadioField/RadioMark.tsx +54 -0
  226. package/src/components/RadioField/index.ts +3 -0
  227. package/src/components/RadioField/radioThemeRoles.test.ts +15 -0
  228. package/src/components/RadioField/radioThemeRoles.ts +11 -0
  229. package/src/components/RadioField/types.ts +25 -0
  230. package/src/components/Select/Select.tsx +279 -0
  231. package/src/components/Select/SelectCloseButton.tsx +19 -0
  232. package/src/components/Select/index.ts +13 -0
  233. package/src/components/Select/resolveSelectDetentIndex.test.ts +20 -0
  234. package/src/components/Select/resolveSelectDetentIndex.ts +16 -0
  235. package/src/components/Select/selectThemeRoles.ts +12 -0
  236. package/src/components/Select/types.ts +39 -0
  237. package/src/components/index.ts +42 -0
  238. package/src/index.ts +50 -0
  239. package/src/layout/index.ts +1 -0
  240. package/src/layout/screenPadding.ts +2 -0
  241. package/src/theme/ThemeProvider.tsx +20 -0
  242. package/src/theme/index.ts +5 -0
  243. package/src/theme/resolveColorScheme.test.ts +16 -0
  244. package/src/theme/resolveColorScheme.ts +5 -0
  245. package/src/theme/types.ts +5 -0
  246. package/src/theme/useColorScheme.ts +13 -0
  247. 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,7 @@
1
+ export declare function RadioMark({ selected, radioColor, selectedColor, holeColor, }: {
2
+ selected: boolean;
3
+ radioColor: string;
4
+ selectedColor: string;
5
+ holeColor: string;
6
+ }): import("react").JSX.Element;
7
+ //# sourceMappingURL=RadioMark.d.ts.map
@@ -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,4 @@
1
+ export { RadioField } from "./RadioField";
2
+ export { RADIO_THEME_ROLES, type RadioThemeColorProp } from "./radioThemeRoles";
3
+ export type { RadioOption, RadioFieldProps } from "./types";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -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,4 @@
1
+ export declare function SelectCloseButton({ onPress }: {
2
+ onPress: () => void;
3
+ }): import("react").JSX.Element;
4
+ //# sourceMappingURL=SelectCloseButton.d.ts.map
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -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"}