@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 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/Field/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare function useResolvedFieldColor(prop: string | undefined, role: string): string;
2
+ //# sourceMappingURL=useResolvedFieldColor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResolvedFieldColor.d.ts","sourceRoot":"","sources":["../../../src/components/Field/useResolvedFieldColor.ts"],"names":[],"mappings":"AAMA,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,EAAE,MAAM,GACX,MAAM,CAKR"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useResolvedFieldColor = useResolvedFieldColor;
4
+ const react_1 = require("react");
5
+ const react_native_1 = require("react-native");
6
+ const resolveColorScheme_1 = require("../../theme/resolveColorScheme");
7
+ const ThemeProvider_1 = require("../../theme/ThemeProvider");
8
+ const resolveFieldColor_1 = require("./resolveFieldColor");
9
+ function useResolvedFieldColor(prop, role) {
10
+ const ctx = (0, react_1.useContext)(ThemeProvider_1.ThemeContext);
11
+ const systemScheme = (0, react_native_1.useColorScheme)();
12
+ const scheme = (0, resolveColorScheme_1.resolveColorScheme)(systemScheme);
13
+ return (0, resolveFieldColor_1.resolveFieldColor)(prop, role, ctx, scheme);
14
+ }
15
+ //# sourceMappingURL=useResolvedFieldColor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResolvedFieldColor.js","sourceRoot":"","sources":["../../../src/components/Field/useResolvedFieldColor.ts"],"names":[],"mappings":";;AAMA,sDAQC;AAdD,iCAAmC;AACnC,+CAAsE;AACtE,uEAAoE;AACpE,6DAAyD;AACzD,2DAAwD;AAExD,SAAgB,qBAAqB,CACnC,IAAwB,EACxB,IAAY;IAEZ,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,4BAAY,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,IAAA,6BAAoB,GAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAA,uCAAkB,EAAC,YAAY,CAAC,CAAC;IAChD,OAAO,IAAA,qCAAiB,EAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FormProps } from "./types";
2
+ export declare function Form({ title, children, onClose, onSubmit, submitLabel, submitting, submitDisabled, closeButton, submitRadius, paddingHorizontal, backgroundColor: backgroundColorProp, titleColor: titleColorProp, footerBackgroundColor: footerBackgroundColorProp, buttonBackgroundColor: buttonBackgroundColorProp, buttonLabelColor: buttonLabelColorProp, }: FormProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=Form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Form.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAgBzC,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,WAAoB,EACpB,UAAkB,EAClB,cAAsB,EACtB,WAAW,EACX,YAAmB,EACnB,iBAA2C,EAC3C,eAAe,EAAE,mBAAmB,EACpC,UAAU,EAAE,cAAc,EAC1B,qBAAqB,EAAE,yBAAyB,EAChD,qBAAqB,EAAE,yBAAyB,EAChD,gBAAgB,EAAE,oBAAoB,GACvC,EAAE,SAAS,+BAsHX"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Form = Form;
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_keyboard_controller_1 = require("react-native-keyboard-controller");
8
+ const react_native_safe_area_context_1 = require("react-native-safe-area-context");
9
+ const screenPadding_1 = require("../../layout/screenPadding");
10
+ const Button_1 = require("../Button/Button");
11
+ const FormCloseButton_1 = require("./FormCloseButton");
12
+ const useResolvedThemeColor_1 = require("./useResolvedThemeColor");
13
+ const withAlpha_1 = require("./withAlpha");
14
+ /** How far the header wash continues below the buttons. */
15
+ const FADE_TAIL = 32;
16
+ /** Space kept between the focused field and the top of the footer. */
17
+ const FIELD_GAP = 12;
18
+ /**
19
+ * The scroll view lifts the caret, which sits inside the field. This covers
20
+ * the rest of the control below the caret so the rounded bottom stays visible.
21
+ */
22
+ const FIELD_BELOW_CARET = 36;
23
+ function Form({ title, children, onClose, onSubmit, submitLabel = "Save", submitting = false, submitDisabled = false, closeButton, submitRadius = "lg", paddingHorizontal = screenPadding_1.screenPaddingHorizontal, backgroundColor: backgroundColorProp, titleColor: titleColorProp, footerBackgroundColor: footerBackgroundColorProp, buttonBackgroundColor: buttonBackgroundColorProp, buttonLabelColor: buttonLabelColorProp, }) {
24
+ const insets = (0, react_native_safe_area_context_1.useSafeAreaInsets)();
25
+ const background = (0, useResolvedThemeColor_1.useResolvedThemeColor)(backgroundColorProp, "background");
26
+ const titleColor = (0, useResolvedThemeColor_1.useResolvedThemeColor)(titleColorProp, "text");
27
+ const footerBackground = (0, useResolvedThemeColor_1.useResolvedThemeColor)(footerBackgroundColorProp, "surface");
28
+ const buttonBackground = (0, useResolvedThemeColor_1.useResolvedThemeColor)(buttonBackgroundColorProp, "buttonBackground");
29
+ const buttonLabel = (0, useResolvedThemeColor_1.useResolvedThemeColor)(buttonLabelColorProp, "buttonLabel");
30
+ const [footerHeight, setFooterHeight] = (0, react_1.useState)(0);
31
+ const [cancelWidth, setCancelWidth] = (0, react_1.useState)(0);
32
+ const [barHeight, setBarHeight] = (0, react_1.useState)(0);
33
+ const resolvedBar = barHeight || insets.top + 52;
34
+ const onFooterLayout = (event) => {
35
+ const next = Math.round(event.nativeEvent.layout.height);
36
+ setFooterHeight((current) => (current === next ? current : next));
37
+ };
38
+ const resolvedClose = closeButton ?? ((0, jsx_runtime_1.jsx)(FormCloseButton_1.FormCloseButton, { onPress: onClose }));
39
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.screen, { backgroundColor: background }], children: [(0, jsx_runtime_1.jsx)(react_native_keyboard_controller_1.KeyboardAwareScrollView, { automaticallyAdjustKeyboardInsets: false, bottomOffset: footerHeight + FIELD_GAP + FIELD_BELOW_CARET, contentContainerStyle: [
40
+ styles.content,
41
+ {
42
+ paddingTop: resolvedBar + FADE_TAIL,
43
+ paddingHorizontal,
44
+ },
45
+ ], contentInsetAdjustmentBehavior: "never", keyboardDismissMode: "interactive", keyboardShouldPersistTaps: "handled", showsVerticalScrollIndicator: false, style: styles.scroll, children: children }), (0, jsx_runtime_1.jsx)(react_native_1.View, { pointerEvents: "box-none", style: [
46
+ styles.fade,
47
+ {
48
+ height: resolvedBar + FADE_TAIL,
49
+ experimental_backgroundImage: `linear-gradient(to bottom, ${(0, withAlpha_1.withAlpha)(background, 0.98)} 0%, ${(0, withAlpha_1.withAlpha)(background, 0.92)} 55%, ${(0, withAlpha_1.withAlpha)(background, 0)} 100%)`,
50
+ },
51
+ ], children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { onLayout: (event) => {
52
+ const next = Math.round(event.nativeEvent.layout.height);
53
+ setBarHeight((current) => (current === next ? current : next));
54
+ }, pointerEvents: "box-none", style: [
55
+ styles.header,
56
+ { paddingTop: insets.top, paddingHorizontal },
57
+ ], children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { onLayout: (event) => {
58
+ const next = Math.round(event.nativeEvent.layout.width);
59
+ setCancelWidth((current) => (current === next ? current : next));
60
+ }, children: resolvedClose }), (0, jsx_runtime_1.jsx)(react_native_1.Text, { accessibilityRole: "header", numberOfLines: 1, pointerEvents: "none", style: [styles.title, { flex: 1, color: titleColor }], children: title }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: { width: cancelWidth } })] }) }), (0, jsx_runtime_1.jsx)(react_native_keyboard_controller_1.KeyboardStickyView, { offset: { closed: 0, opened: insets.bottom }, children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.footerShell, { backgroundColor: footerBackground }], children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { onLayout: onFooterLayout, style: [styles.footer, { paddingHorizontal }], children: (0, jsx_runtime_1.jsx)(Button_1.Button, { backgroundColor: buttonBackground, disabled: submitDisabled, label: submitLabel, labelColor: buttonLabel, loading: submitting, onPress: onSubmit, radius: submitRadius }) }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: { height: insets.bottom } })] }) })] }));
61
+ }
62
+ const styles = react_native_1.StyleSheet.create({
63
+ screen: {
64
+ flex: 1,
65
+ },
66
+ scroll: {
67
+ flex: 1,
68
+ },
69
+ content: {
70
+ paddingTop: 20,
71
+ paddingBottom: 24,
72
+ },
73
+ fade: {
74
+ position: "absolute",
75
+ top: 0,
76
+ left: 0,
77
+ right: 0,
78
+ },
79
+ header: {
80
+ flexDirection: "row",
81
+ alignItems: "center",
82
+ },
83
+ title: {
84
+ fontSize: 17,
85
+ fontWeight: "600",
86
+ textAlign: "center",
87
+ },
88
+ footerShell: {
89
+ // Cast upward so the sticky footer separates from the scroll body.
90
+ shadowColor: "#000",
91
+ shadowOffset: { width: 0, height: -4 },
92
+ shadowOpacity: 0.08,
93
+ shadowRadius: 12,
94
+ elevation: 8,
95
+ },
96
+ footer: {
97
+ paddingVertical: 12,
98
+ },
99
+ });
100
+ //# sourceMappingURL=Form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form.js","sourceRoot":"","sources":["../../../src/components/Form/Form.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function FormCloseButton({ onPress }: {
2
+ onPress: () => void;
3
+ }): import("react").JSX.Element;
4
+ //# sourceMappingURL=FormCloseButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormCloseButton.d.ts","sourceRoot":"","sources":["../../../src/components/Form/FormCloseButton.tsx"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,+BAQnE"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormCloseButton = FormCloseButton;
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 FormCloseButton({ 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=FormCloseButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormCloseButton.js","sourceRoot":"","sources":["../../../src/components/Form/FormCloseButton.tsx"],"names":[],"mappings":";;AAGA,0CAQC;;AAXD,+CAA2D;AAC3D,6DAA0D;AAE1D,SAAgB,eAAe,CAAC,EAAE,OAAO,EAA2B;IAClE,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,4 @@
1
+ export { Form } from "./Form";
2
+ export { FormCloseButton } from "./FormCloseButton";
3
+ export type { FormProps } from "./types";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormCloseButton = exports.Form = void 0;
4
+ var Form_1 = require("./Form");
5
+ Object.defineProperty(exports, "Form", { enumerable: true, get: function () { return Form_1.Form; } });
6
+ var FormCloseButton_1 = require("./FormCloseButton");
7
+ Object.defineProperty(exports, "FormCloseButton", { enumerable: true, get: function () { return FormCloseButton_1.FormCloseButton; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Form/index.ts"],"names":[],"mappings":";;;AAAA,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,qDAAoD;AAA3C,kHAAA,eAAe,OAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Resolve a colour: explicit prop wins; otherwise read the theme role.
3
+ * Pure helper so it can be unit-tested without rendering.
4
+ */
5
+ export declare function resolveThemeColor(prop: string | undefined, role: string, ctx: {
6
+ colors: {
7
+ light: Record<string, string>;
8
+ dark: Record<string, string>;
9
+ };
10
+ } | null, scheme: "light" | "dark"): string;
11
+ //# sourceMappingURL=resolveThemeColor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveThemeColor.d.ts","sourceRoot":"","sources":["../../../src/components/Form/resolveThemeColor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE;IAAE,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GAAG,IAAI,EACvF,MAAM,EAAE,OAAO,GAAG,MAAM,GACvB,MAAM,CAcR"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveThemeColor = resolveThemeColor;
4
+ /**
5
+ * Resolve a colour: explicit prop wins; otherwise read the theme role.
6
+ * Pure helper so it can be unit-tested without rendering.
7
+ */
8
+ function resolveThemeColor(prop, role, ctx, scheme) {
9
+ if (prop != null) {
10
+ return prop;
11
+ }
12
+ if (!ctx) {
13
+ throw new Error(`Colour "${role}" was not passed and ThemeProvider is required to resolve defaults`);
14
+ }
15
+ const value = ctx.colors[scheme][role];
16
+ if (value == null) {
17
+ throw new Error(`Unknown theme colour "${role}" for scheme "${scheme}"`);
18
+ }
19
+ return value;
20
+ }
21
+ //# sourceMappingURL=resolveThemeColor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveThemeColor.js","sourceRoot":"","sources":["../../../src/components/Form/resolveThemeColor.ts"],"names":[],"mappings":";;AAIA,8CAmBC;AAvBD;;;GAGG;AACH,SAAgB,iBAAiB,CAC/B,IAAwB,EACxB,IAAY,EACZ,GAAuF,EACvF,MAAwB;IAExB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,oEAAoE,CACpF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,iBAAiB,MAAM,GAAG,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { ReactNode } from "react";
2
+ import type { ButtonRadius } from "../Button/buttonRadius";
3
+ export type FormProps = {
4
+ title: string;
5
+ children: ReactNode;
6
+ onClose: () => void;
7
+ onSubmit: () => void;
8
+ submitLabel?: string;
9
+ submitting?: boolean;
10
+ submitDisabled?: boolean;
11
+ /** App-specific Cancel control. Defaults to a plain text Cancel. */
12
+ closeButton?: ReactNode;
13
+ submitRadius?: ButtonRadius;
14
+ /**
15
+ * Horizontal inset for header, scroll content, and footer.
16
+ * Defaults to 16. Pass a value to override.
17
+ */
18
+ paddingHorizontal?: number;
19
+ /** Defaults to theme role `background`. */
20
+ backgroundColor?: string;
21
+ /** Defaults to theme role `text`. */
22
+ titleColor?: string;
23
+ /** Defaults to theme role `surface`. Footer ground. */
24
+ footerBackgroundColor?: string;
25
+ /** Defaults to theme role `buttonBackground`. */
26
+ buttonBackgroundColor?: string;
27
+ /** Defaults to theme role `buttonLabel`. */
28
+ buttonLabelColor?: string;
29
+ };
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Form/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oEAAoE;IACpE,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iDAAiD;IACjD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,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/Form/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare function useResolvedThemeColor(prop: string | undefined, role: string): string;
2
+ //# sourceMappingURL=useResolvedThemeColor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResolvedThemeColor.d.ts","sourceRoot":"","sources":["../../../src/components/Form/useResolvedThemeColor.ts"],"names":[],"mappings":"AAMA,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,EAAE,MAAM,GACX,MAAM,CAKR"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useResolvedThemeColor = useResolvedThemeColor;
4
+ const react_1 = require("react");
5
+ const react_native_1 = require("react-native");
6
+ const resolveColorScheme_1 = require("../../theme/resolveColorScheme");
7
+ const ThemeProvider_1 = require("../../theme/ThemeProvider");
8
+ const resolveThemeColor_1 = require("./resolveThemeColor");
9
+ function useResolvedThemeColor(prop, role) {
10
+ const ctx = (0, react_1.useContext)(ThemeProvider_1.ThemeContext);
11
+ const systemScheme = (0, react_native_1.useColorScheme)();
12
+ const scheme = (0, resolveColorScheme_1.resolveColorScheme)(systemScheme);
13
+ return (0, resolveThemeColor_1.resolveThemeColor)(prop, role, ctx, scheme);
14
+ }
15
+ //# sourceMappingURL=useResolvedThemeColor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResolvedThemeColor.js","sourceRoot":"","sources":["../../../src/components/Form/useResolvedThemeColor.ts"],"names":[],"mappings":";;AAMA,sDAQC;AAdD,iCAAmC;AACnC,+CAAsE;AACtE,uEAAoE;AACpE,6DAAyD;AACzD,2DAAwD;AAExD,SAAgB,qBAAqB,CACnC,IAAwB,EACxB,IAAY;IAEZ,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,4BAAY,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,IAAA,6BAAoB,GAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAA,uCAAkB,EAAC,YAAY,CAAC,CAAC;IAChD,OAAO,IAAA,qCAAiB,EAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function withAlpha(hex: string, alpha: number): string;
2
+ //# sourceMappingURL=withAlpha.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withAlpha.d.ts","sourceRoot":"","sources":["../../../src/components/Form/withAlpha.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ5D"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withAlpha = withAlpha;
4
+ function withAlpha(hex, alpha) {
5
+ const raw = hex.replace("#", "");
6
+ const full = raw.length === 3 ? raw.split("").map((c) => `${c}${c}`).join("") : raw;
7
+ const r = Number.parseInt(full.slice(0, 2), 16);
8
+ const g = Number.parseInt(full.slice(2, 4), 16);
9
+ const b = Number.parseInt(full.slice(4, 6), 16);
10
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
11
+ }
12
+ //# sourceMappingURL=withAlpha.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withAlpha.js","sourceRoot":"","sources":["../../../src/components/Form/withAlpha.ts"],"names":[],"mappings":";;AAAA,8BAQC;AARD,SAAgB,SAAS,CAAC,GAAW,EAAE,KAAa;IAClD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACjC,MAAM,IAAI,GACR,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LinkBlocksProps } from "./types";
2
+ export declare function LinkBlocks({ blocks, surfaceColor, labelColor, dividerColor, chevronColor, titleColor, radius, style, }: LinkBlocksProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=LinkBlocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkBlocks.d.ts","sourceRoot":"","sources":["../../../src/components/LinkBlocks/LinkBlocks.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,SAAS,CAAC;AAK/D,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,MAAa,EACb,KAAK,GACN,EAAE,eAAe,+BAqBjB"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LinkBlocks = LinkBlocks;
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 filterGroups_1 = require("./filterGroups");
8
+ const ICON_SLOT = 28;
9
+ const ROW_PAD_H = 16;
10
+ function LinkBlocks({ blocks, surfaceColor, labelColor, dividerColor, chevronColor, titleColor, radius = "xl", style, }) {
11
+ const visible = (0, filterGroups_1.filterLinkBlockGroups)(blocks);
12
+ const borderRadius = (0, buttonRadius_1.buttonRadiusValue)(radius);
13
+ const resolvedTitleColor = titleColor ?? labelColor;
14
+ return ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [styles.stack, style], children: visible.map((group) => ((0, jsx_runtime_1.jsx)(Group, { group: group, surfaceColor: surfaceColor, labelColor: labelColor, dividerColor: dividerColor, chevronColor: chevronColor, titleColor: resolvedTitleColor, borderRadius: borderRadius }, group.key))) }));
15
+ }
16
+ function Group({ group, surfaceColor, labelColor, dividerColor, chevronColor, titleColor, borderRadius, }) {
17
+ const showIconSlot = group.items.some((item) => item.icon != null);
18
+ const dividerInset = ROW_PAD_H + (showIconSlot ? ICON_SLOT + 12 : 0);
19
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.group, children: [group.title ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.title, { color: titleColor }], children: group.title })) : null, (0, jsx_runtime_1.jsx)(react_native_1.View, { style: [
20
+ styles.surface,
21
+ { backgroundColor: surfaceColor, borderRadius },
22
+ ], children: group.items.map((item, index) => ((0, jsx_runtime_1.jsxs)(react_native_1.View, { children: [index > 0 ? ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [
23
+ styles.divider,
24
+ {
25
+ backgroundColor: dividerColor,
26
+ marginLeft: dividerInset,
27
+ },
28
+ ] })) : null, (0, jsx_runtime_1.jsxs)(react_native_1.TouchableOpacity, { accessibilityLabel: item.label, accessibilityRole: "button", accessibilityState: { disabled: !!item.disabled }, activeOpacity: 0.75, disabled: item.disabled, onPress: item.onPress, style: [styles.row, item.disabled && styles.blocked], children: [showIconSlot ? ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.iconSlot, children: item.icon ?? null })) : null, (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.label, { color: labelColor, flex: 1 }], children: item.label }), (0, jsx_runtime_1.jsx)(react_native_1.Text, { accessibilityElementsHidden: true, importantForAccessibility: "no", selectable: false, style: [styles.chevron, { color: chevronColor }], children: "\u203A" })] })] }, item.key))) })] }));
29
+ }
30
+ const styles = react_native_1.StyleSheet.create({
31
+ stack: {
32
+ width: "100%",
33
+ gap: 16,
34
+ },
35
+ group: {
36
+ width: "100%",
37
+ gap: 8,
38
+ },
39
+ title: {
40
+ fontSize: 13,
41
+ fontWeight: "600",
42
+ paddingHorizontal: 4,
43
+ },
44
+ surface: {
45
+ width: "100%",
46
+ overflow: "hidden",
47
+ },
48
+ row: {
49
+ minHeight: 52,
50
+ paddingHorizontal: ROW_PAD_H,
51
+ flexDirection: "row",
52
+ alignItems: "center",
53
+ gap: 12,
54
+ },
55
+ blocked: {
56
+ opacity: 0.4,
57
+ },
58
+ iconSlot: {
59
+ width: ICON_SLOT,
60
+ alignItems: "center",
61
+ justifyContent: "center",
62
+ },
63
+ label: {
64
+ fontSize: 17,
65
+ },
66
+ chevron: {
67
+ fontSize: 22,
68
+ fontWeight: "300",
69
+ lineHeight: 24,
70
+ },
71
+ divider: {
72
+ height: react_native_1.StyleSheet.hairlineWidth,
73
+ },
74
+ });
75
+ //# sourceMappingURL=LinkBlocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkBlocks.js","sourceRoot":"","sources":["../../../src/components/LinkBlocks/LinkBlocks.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { LinkBlockGroup } from "./types";
2
+ export declare function filterLinkBlockGroups(blocks: LinkBlockGroup[]): LinkBlockGroup[];
3
+ //# sourceMappingURL=filterGroups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterGroups.d.ts","sourceRoot":"","sources":["../../../src/components/LinkBlocks/filterGroups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,EAAE,GACvB,cAAc,EAAE,CAElB"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.filterLinkBlockGroups = filterLinkBlockGroups;
4
+ function filterLinkBlockGroups(blocks) {
5
+ return blocks.filter((group) => group.items.length > 0);
6
+ }
7
+ //# sourceMappingURL=filterGroups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterGroups.js","sourceRoot":"","sources":["../../../src/components/LinkBlocks/filterGroups.ts"],"names":[],"mappings":";;AAEA,sDAIC;AAJD,SAAgB,qBAAqB,CACnC,MAAwB;IAExB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { LinkBlocks } from "./LinkBlocks";
2
+ export type { LinkBlockGroup, LinkBlockItem, LinkBlocksProps, } from "./types";
3
+ export { filterLinkBlockGroups } from "./filterGroups";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/LinkBlocks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EACV,cAAc,EACd,aAAa,EACb,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.filterLinkBlockGroups = exports.LinkBlocks = void 0;
4
+ var LinkBlocks_1 = require("./LinkBlocks");
5
+ Object.defineProperty(exports, "LinkBlocks", { enumerable: true, get: function () { return LinkBlocks_1.LinkBlocks; } });
6
+ var filterGroups_1 = require("./filterGroups");
7
+ Object.defineProperty(exports, "filterLinkBlockGroups", { enumerable: true, get: function () { return filterGroups_1.filterLinkBlockGroups; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/LinkBlocks/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AAMnB,+CAAuD;AAA9C,qHAAA,qBAAqB,OAAA"}
@@ -0,0 +1,26 @@
1
+ import type { ReactNode } from "react";
2
+ import type { StyleProp, ViewStyle } from "react-native";
3
+ import type { ButtonRadius } from "../Button/buttonRadius";
4
+ export type LinkBlockItem = {
5
+ key: string;
6
+ label: string;
7
+ onPress: () => void;
8
+ icon?: ReactNode;
9
+ disabled?: boolean;
10
+ };
11
+ export type LinkBlockGroup = {
12
+ key: string;
13
+ title?: string;
14
+ items: LinkBlockItem[];
15
+ };
16
+ export type LinkBlocksProps = {
17
+ blocks: LinkBlockGroup[];
18
+ surfaceColor: string;
19
+ labelColor: string;
20
+ dividerColor: string;
21
+ chevronColor: string;
22
+ titleColor?: string;
23
+ radius?: ButtonRadius;
24
+ style?: StyleProp<ViewStyle>;
25
+ };
26
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/LinkBlocks/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,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,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/LinkBlocks/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { RadioFieldProps } from "./types";
2
+ export declare function RadioField<T extends string = string>({ value, onChange, options, label, radius, backgroundColor: backgroundColorProp, labelColor: labelColorProp, descriptionColor: descriptionColorProp, dividerColor: dividerColorProp, radioColor: radioColorProp, selectedColor: selectedColorProp, titleColor: titleColorProp, style, }: RadioFieldProps<T>): import("react").JSX.Element | null;
3
+ //# sourceMappingURL=RadioField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioField.d.ts","sourceRoot":"","sources":["../../../src/components/RadioField/RadioField.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI/C,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EACpD,KAAK,EACL,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAa,EACb,eAAe,EAAE,mBAAmB,EACpC,UAAU,EAAE,cAAc,EAC1B,gBAAgB,EAAE,oBAAoB,EACtC,YAAY,EAAE,gBAAgB,EAC9B,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,iBAAiB,EAChC,UAAU,EAAE,cAAc,EAC1B,KAAK,GACN,EAAE,eAAe,CAAC,CAAC,CAAC,sCAmGpB"}