@lmb-it/kitsconcerto-native 0.1.243 → 0.1.245

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 (282) hide show
  1. package/animations/index.cjs +25 -15
  2. package/animations/index.cjs.map +1 -1
  3. package/animations/index.js +25 -15
  4. package/animations/index.js.map +1 -1
  5. package/apps/mobile/src/Core/AutoComplete/index.cjs +105 -64
  6. package/apps/mobile/src/Core/AutoComplete/index.cjs.map +1 -1
  7. package/apps/mobile/src/Core/AutoComplete/index.js +106 -65
  8. package/apps/mobile/src/Core/AutoComplete/index.js.map +1 -1
  9. package/apps/mobile/src/Core/Dropdown/index.cjs +2 -0
  10. package/apps/mobile/src/Core/Dropdown/index.cjs.map +1 -1
  11. package/apps/mobile/src/Core/Dropdown/index.js +2 -0
  12. package/apps/mobile/src/Core/Dropdown/index.js.map +1 -1
  13. package/apps/mobile/src/Core/Trees/components/CoreToolbar.cjs +2 -0
  14. package/apps/mobile/src/Core/Trees/components/CoreToolbar.cjs.map +1 -1
  15. package/apps/mobile/src/Core/Trees/components/CoreToolbar.js +2 -0
  16. package/apps/mobile/src/Core/Trees/components/CoreToolbar.js.map +1 -1
  17. package/apps/mobile/src/Factory/ResponsiveElement.cjs +2 -0
  18. package/apps/mobile/src/Factory/ResponsiveElement.cjs.map +1 -1
  19. package/apps/mobile/src/Factory/ResponsiveElement.js +2 -0
  20. package/apps/mobile/src/Factory/ResponsiveElement.js.map +1 -1
  21. package/apps/mobile/src/Factory/helpers/cssVarMap.cjs +16 -0
  22. package/apps/mobile/src/Factory/helpers/cssVarMap.cjs.map +1 -1
  23. package/apps/mobile/src/Factory/helpers/cssVarMap.js +16 -0
  24. package/apps/mobile/src/Factory/helpers/cssVarMap.js.map +1 -1
  25. package/apps/mobile/src/Factory/helpers/style.cjs +17 -1
  26. package/apps/mobile/src/Factory/helpers/style.cjs.map +1 -1
  27. package/apps/mobile/src/Factory/helpers/style.js +17 -1
  28. package/apps/mobile/src/Factory/helpers/style.js.map +1 -1
  29. package/apps/mobile/src/Factory/useSeparator.cjs +1 -0
  30. package/apps/mobile/src/Factory/useSeparator.cjs.map +1 -1
  31. package/apps/mobile/src/Factory/useSeparator.js +1 -0
  32. package/apps/mobile/src/Factory/useSeparator.js.map +1 -1
  33. package/components/Accordion/accordion.cjs +2 -0
  34. package/components/Accordion/accordion.cjs.map +1 -1
  35. package/components/Accordion/accordion.js +2 -0
  36. package/components/Accordion/accordion.js.map +1 -1
  37. package/components/Badge/index.cjs +2 -0
  38. package/components/Badge/index.cjs.map +1 -1
  39. package/components/Badge/index.js +2 -0
  40. package/components/Badge/index.js.map +1 -1
  41. package/components/BottomTabBar/index.cjs +2 -0
  42. package/components/BottomTabBar/index.cjs.map +1 -1
  43. package/components/BottomTabBar/index.js +2 -0
  44. package/components/BottomTabBar/index.js.map +1 -1
  45. package/components/Button/Button.cjs +2 -0
  46. package/components/Button/Button.cjs.map +1 -1
  47. package/components/Button/Button.js +2 -0
  48. package/components/Button/Button.js.map +1 -1
  49. package/components/MessageComposer/index.cjs +2 -0
  50. package/components/MessageComposer/index.cjs.map +1 -1
  51. package/components/MessageComposer/index.js +2 -0
  52. package/components/MessageComposer/index.js.map +1 -1
  53. package/components/SegmentedControl/index.cjs +2 -0
  54. package/components/SegmentedControl/index.cjs.map +1 -1
  55. package/components/SegmentedControl/index.js +2 -0
  56. package/components/SegmentedControl/index.js.map +1 -1
  57. package/components/SkeletonText/index.cjs +2 -0
  58. package/components/SkeletonText/index.cjs.map +1 -1
  59. package/components/SkeletonText/index.js +2 -0
  60. package/components/SkeletonText/index.js.map +1 -1
  61. package/components/Tabs/index.cjs +2 -0
  62. package/components/Tabs/index.cjs.map +1 -1
  63. package/components/Tabs/index.js +2 -0
  64. package/components/Tabs/index.js.map +1 -1
  65. package/components/overlay/ConfirmDialog/index.cjs +146 -89
  66. package/components/overlay/ConfirmDialog/index.cjs.map +1 -1
  67. package/components/overlay/ConfirmDialog/index.js +147 -90
  68. package/components/overlay/ConfirmDialog/index.js.map +1 -1
  69. package/components/overlay/Dialog/index.cjs +90 -64
  70. package/components/overlay/Dialog/index.cjs.map +1 -1
  71. package/components/overlay/Dialog/index.js +91 -65
  72. package/components/overlay/Dialog/index.js.map +1 -1
  73. package/components/overlay/Toast/index.cjs +59 -24
  74. package/components/overlay/Toast/index.cjs.map +1 -1
  75. package/components/overlay/Toast/index.js +62 -27
  76. package/components/overlay/Toast/index.js.map +1 -1
  77. package/contexts/Locale/index.cjs +2 -0
  78. package/contexts/Locale/index.cjs.map +1 -1
  79. package/contexts/Locale/index.js +2 -0
  80. package/contexts/Locale/index.js.map +1 -1
  81. package/contexts/Main/index.cjs +2 -0
  82. package/contexts/Main/index.cjs.map +1 -1
  83. package/contexts/Main/index.js +2 -0
  84. package/contexts/Main/index.js.map +1 -1
  85. package/contexts/Theme/KitsThemeProvider.cjs +2 -0
  86. package/contexts/Theme/KitsThemeProvider.cjs.map +1 -1
  87. package/contexts/Theme/KitsThemeProvider.js +2 -0
  88. package/contexts/Theme/KitsThemeProvider.js.map +1 -1
  89. package/contexts/Theme/index.cjs +1 -0
  90. package/contexts/Theme/index.cjs.map +1 -1
  91. package/contexts/Theme/index.js +1 -0
  92. package/contexts/Theme/index.js.map +1 -1
  93. package/contexts/Theme/resolvers.cjs +4 -0
  94. package/contexts/Theme/resolvers.cjs.map +1 -1
  95. package/contexts/Theme/resolvers.js +4 -0
  96. package/contexts/Theme/resolvers.js.map +1 -1
  97. package/data/DataView/Pagination/index.cjs +2 -0
  98. package/data/DataView/Pagination/index.cjs.map +1 -1
  99. package/data/DataView/Pagination/index.js +2 -0
  100. package/data/DataView/Pagination/index.js.map +1 -1
  101. package/data/TreeView/index.cjs +2 -0
  102. package/data/TreeView/index.cjs.map +1 -1
  103. package/data/TreeView/index.js +2 -0
  104. package/data/TreeView/index.js.map +1 -1
  105. package/form/controls/Checkbox/checkbox.cjs +2 -0
  106. package/form/controls/Checkbox/checkbox.cjs.map +1 -1
  107. package/form/controls/Checkbox/checkbox.js +2 -0
  108. package/form/controls/Checkbox/checkbox.js.map +1 -1
  109. package/form/controls/RadioButton/radiobutton.cjs +2 -0
  110. package/form/controls/RadioButton/radiobutton.cjs.map +1 -1
  111. package/form/controls/RadioButton/radiobutton.js +2 -0
  112. package/form/controls/RadioButton/radiobutton.js.map +1 -1
  113. package/form/controls/SelectButton/index.cjs +2 -0
  114. package/form/controls/SelectButton/index.cjs.map +1 -1
  115. package/form/controls/SelectButton/index.js +2 -0
  116. package/form/controls/SelectButton/index.js.map +1 -1
  117. package/form/controls/TriStateCheckbox/index.cjs +2 -0
  118. package/form/controls/TriStateCheckbox/index.cjs.map +1 -1
  119. package/form/controls/TriStateCheckbox/index.js +2 -0
  120. package/form/controls/TriStateCheckbox/index.js.map +1 -1
  121. package/form/file-pickers/MainUploader/index.cjs +1 -0
  122. package/form/file-pickers/MainUploader/index.cjs.map +1 -1
  123. package/form/file-pickers/MainUploader/index.js +1 -0
  124. package/form/file-pickers/MainUploader/index.js.map +1 -1
  125. package/form/helpers/ErrorMessage/errormessage.cjs +2 -0
  126. package/form/helpers/ErrorMessage/errormessage.cjs.map +1 -1
  127. package/form/helpers/ErrorMessage/errormessage.js +2 -0
  128. package/form/helpers/ErrorMessage/errormessage.js.map +1 -1
  129. package/form/helpers/FormContainer/index.cjs +2 -0
  130. package/form/helpers/FormContainer/index.cjs.map +1 -1
  131. package/form/helpers/FormContainer/index.js +2 -0
  132. package/form/helpers/FormContainer/index.js.map +1 -1
  133. package/form/helpers/Label/label.cjs +2 -0
  134. package/form/helpers/Label/label.cjs.map +1 -1
  135. package/form/helpers/Label/label.js +2 -0
  136. package/form/helpers/Label/label.js.map +1 -1
  137. package/form/inputs/InputMask/index.cjs +2 -0
  138. package/form/inputs/InputMask/index.cjs.map +1 -1
  139. package/form/inputs/InputMask/index.js +2 -0
  140. package/form/inputs/InputMask/index.js.map +1 -1
  141. package/form/inputs/InputNumber/index.cjs +2 -0
  142. package/form/inputs/InputNumber/index.cjs.map +1 -1
  143. package/form/inputs/InputNumber/index.js +2 -0
  144. package/form/inputs/InputNumber/index.js.map +1 -1
  145. package/form/inputs/InputPassword/index.cjs +2 -0
  146. package/form/inputs/InputPassword/index.cjs.map +1 -1
  147. package/form/inputs/InputPassword/index.js +2 -0
  148. package/form/inputs/InputPassword/index.js.map +1 -1
  149. package/form/inputs/InputSwitch/index.cjs +2 -0
  150. package/form/inputs/InputSwitch/index.cjs.map +1 -1
  151. package/form/inputs/InputSwitch/index.js +2 -0
  152. package/form/inputs/InputSwitch/index.js.map +1 -1
  153. package/form/inputs/InputText/index.cjs +2 -0
  154. package/form/inputs/InputText/index.cjs.map +1 -1
  155. package/form/inputs/InputText/index.js +2 -0
  156. package/form/inputs/InputText/index.js.map +1 -1
  157. package/form/inputs/InputTextarea/index.cjs +2 -0
  158. package/form/inputs/InputTextarea/index.cjs.map +1 -1
  159. package/form/inputs/InputTextarea/index.js +2 -0
  160. package/form/inputs/InputTextarea/index.js.map +1 -1
  161. package/form/inputs/PhoneInput/index.cjs +2 -0
  162. package/form/inputs/PhoneInput/index.cjs.map +1 -1
  163. package/form/inputs/PhoneInput/index.js +2 -0
  164. package/form/inputs/PhoneInput/index.js.map +1 -1
  165. package/form/inputs/RadiusPicker/components/NumericRadiusInput.cjs +1 -0
  166. package/form/inputs/RadiusPicker/components/NumericRadiusInput.cjs.map +1 -1
  167. package/form/inputs/RadiusPicker/components/NumericRadiusInput.js +1 -0
  168. package/form/inputs/RadiusPicker/components/NumericRadiusInput.js.map +1 -1
  169. package/form/selects/AutoComplete/index.cjs +2 -0
  170. package/form/selects/AutoComplete/index.cjs.map +1 -1
  171. package/form/selects/AutoComplete/index.js +2 -0
  172. package/form/selects/AutoComplete/index.js.map +1 -1
  173. package/form/selects/Dropdown/index.cjs +2 -0
  174. package/form/selects/Dropdown/index.cjs.map +1 -1
  175. package/form/selects/Dropdown/index.js +2 -0
  176. package/form/selects/Dropdown/index.js.map +1 -1
  177. package/form/selects/ListBox/index.cjs +2 -0
  178. package/form/selects/ListBox/index.cjs.map +1 -1
  179. package/form/selects/ListBox/index.js +2 -0
  180. package/form/selects/ListBox/index.js.map +1 -1
  181. package/form/selects/MultiSelect/index.cjs +2 -0
  182. package/form/selects/MultiSelect/index.cjs.map +1 -1
  183. package/form/selects/MultiSelect/index.js +2 -0
  184. package/form/selects/MultiSelect/index.js.map +1 -1
  185. package/form/selects/TreeSelect/index.cjs +2 -0
  186. package/form/selects/TreeSelect/index.cjs.map +1 -1
  187. package/form/selects/TreeSelect/index.js +2 -0
  188. package/form/selects/TreeSelect/index.js.map +1 -1
  189. package/form-renderer/components/layout/FieldWrapper.cjs +2 -0
  190. package/form-renderer/components/layout/FieldWrapper.cjs.map +1 -1
  191. package/form-renderer/components/layout/FieldWrapper.js +2 -0
  192. package/form-renderer/components/layout/FieldWrapper.js.map +1 -1
  193. package/hooks/shadowPresets.cjs +1 -0
  194. package/hooks/shadowPresets.cjs.map +1 -1
  195. package/hooks/shadowPresets.js +1 -0
  196. package/hooks/shadowPresets.js.map +1 -1
  197. package/hooks/useFocusStyles.cjs +2 -0
  198. package/hooks/useFocusStyles.cjs.map +1 -1
  199. package/hooks/useFocusStyles.js +2 -0
  200. package/hooks/useFocusStyles.js.map +1 -1
  201. package/index.cjs +5 -0
  202. package/index.cjs.map +1 -1
  203. package/index.d.ts +60 -3
  204. package/index.js +1 -0
  205. package/index.js.map +1 -1
  206. package/layout/Center/index.cjs +2 -0
  207. package/layout/Center/index.cjs.map +1 -1
  208. package/layout/Center/index.js +2 -0
  209. package/layout/Center/index.js.map +1 -1
  210. package/layout/Container/container.cjs +2 -0
  211. package/layout/Container/container.cjs.map +1 -1
  212. package/layout/Container/container.js +2 -0
  213. package/layout/Container/container.js.map +1 -1
  214. package/layout/Flex/index.cjs +2 -0
  215. package/layout/Flex/index.cjs.map +1 -1
  216. package/layout/Flex/index.js +2 -0
  217. package/layout/Flex/index.js.map +1 -1
  218. package/layout/HStack/index.cjs +2 -0
  219. package/layout/HStack/index.cjs.map +1 -1
  220. package/layout/HStack/index.js +2 -0
  221. package/layout/HStack/index.js.map +1 -1
  222. package/layout/List/index.cjs +2 -0
  223. package/layout/List/index.cjs.map +1 -1
  224. package/layout/List/index.js +2 -0
  225. package/layout/List/index.js.map +1 -1
  226. package/layout/ListItem/index.cjs +2 -0
  227. package/layout/ListItem/index.cjs.map +1 -1
  228. package/layout/ListItem/index.js +2 -0
  229. package/layout/ListItem/index.js.map +1 -1
  230. package/layout/ScrollView/index.cjs +2 -0
  231. package/layout/ScrollView/index.cjs.map +1 -1
  232. package/layout/ScrollView/index.js +2 -0
  233. package/layout/ScrollView/index.js.map +1 -1
  234. package/layout/VStack/index.cjs +2 -0
  235. package/layout/VStack/index.cjs.map +1 -1
  236. package/layout/VStack/index.js +2 -0
  237. package/layout/VStack/index.js.map +1 -1
  238. package/package.json +1 -1
  239. package/packages/types/src/Theme/alphaColors.cjs +24 -0
  240. package/packages/types/src/Theme/alphaColors.cjs.map +1 -0
  241. package/packages/types/src/Theme/alphaColors.js +19 -0
  242. package/packages/types/src/Theme/alphaColors.js.map +1 -0
  243. package/packages/types/src/Theme/resolvers.cjs +6 -0
  244. package/packages/types/src/Theme/resolvers.cjs.map +1 -1
  245. package/packages/types/src/Theme/resolvers.js +6 -0
  246. package/packages/types/src/Theme/resolvers.js.map +1 -1
  247. package/primitives/Box/index.cjs +2 -0
  248. package/primitives/Box/index.cjs.map +1 -1
  249. package/primitives/Box/index.js +2 -0
  250. package/primitives/Box/index.js.map +1 -1
  251. package/primitives/Card/index.cjs +2 -0
  252. package/primitives/Card/index.cjs.map +1 -1
  253. package/primitives/Card/index.js +2 -0
  254. package/primitives/Card/index.js.map +1 -1
  255. package/primitives/Divider/index.cjs +2 -0
  256. package/primitives/Divider/index.cjs.map +1 -1
  257. package/primitives/Divider/index.js +2 -0
  258. package/primitives/Divider/index.js.map +1 -1
  259. package/primitives/Heading/index.cjs +2 -0
  260. package/primitives/Heading/index.cjs.map +1 -1
  261. package/primitives/Heading/index.js +2 -0
  262. package/primitives/Heading/index.js.map +1 -1
  263. package/primitives/Icon/index.cjs +1 -0
  264. package/primitives/Icon/index.cjs.map +1 -1
  265. package/primitives/Icon/index.js +1 -0
  266. package/primitives/Icon/index.js.map +1 -1
  267. package/primitives/Image/index.cjs +2 -0
  268. package/primitives/Image/index.cjs.map +1 -1
  269. package/primitives/Image/index.js +2 -0
  270. package/primitives/Image/index.js.map +1 -1
  271. package/primitives/Skeleton/index.cjs +2 -0
  272. package/primitives/Skeleton/index.cjs.map +1 -1
  273. package/primitives/Skeleton/index.js +2 -0
  274. package/primitives/Skeleton/index.js.map +1 -1
  275. package/primitives/Svg/index.cjs +2 -0
  276. package/primitives/Svg/index.cjs.map +1 -1
  277. package/primitives/Svg/index.js +2 -0
  278. package/primitives/Svg/index.js.map +1 -1
  279. package/primitives/Text/index.cjs +2 -0
  280. package/primitives/Text/index.cjs.map +1 -1
  281. package/primitives/Text/index.js +2 -0
  282. package/primitives/Text/index.js.map +1 -1
@@ -1,9 +1,9 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import React from 'react';
2
3
  import { Modal, Pressable, StyleSheet, View } from 'react-native';
3
- import Animated, { SlideInDown, FadeIn, ZoomIn } from 'react-native-reanimated';
4
+ import Animated, { SlideOutDown, Easing, runOnJS, SlideInDown, FadeOut, FadeIn, ZoomOut, ZoomIn } from 'react-native-reanimated';
4
5
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
5
6
  import { useSeverityColors, useAllSeverityColors } from '../../../hooks/useSeverityColors.js';
6
- import 'react';
7
7
  import '../../../contexts/DialogContext.js';
8
8
  import useResolvedStyle from '../../../hooks/useResolvedStyle.js';
9
9
  import { overlayAnimations } from '../../../animations/index.js';
@@ -11,6 +11,18 @@ import { useKitsTheme } from '../../../contexts/Theme/KitsThemeProvider.js';
11
11
  import Text from '../../../primitives/Text/index.js';
12
12
  import { Icon } from '../../../primitives/Icon/index.js';
13
13
 
14
+ function useOverlayPresence(visible) {
15
+ const [mounted, setMounted] = React.useState(visible);
16
+ const visibleRef = React.useRef(visible);
17
+ React.useEffect(() => {
18
+ visibleRef.current = visible;
19
+ if (visible) setMounted(true);
20
+ }, [visible]);
21
+ const handleExitFinished = React.useCallback(() => {
22
+ if (!visibleRef.current) setMounted(false);
23
+ }, []);
24
+ return { mounted, handleExitFinished };
25
+ }
14
26
  function KitsConfirm(props) {
15
27
  const {
16
28
  visible,
@@ -48,12 +60,14 @@ function KitsConfirm(props) {
48
60
  const textColor = resolveToken("text");
49
61
  const subtextColor = resolveToken("gray.500");
50
62
  const grabberColor = resolveToken("gray.300");
63
+ const scrimColor = resolveToken("black-alpha-40");
51
64
  const brandLogo = type === "brand" ? theme.config.logo : null;
52
65
  const resolvedStyle = useResolvedStyle(style || {});
53
66
  const resolvedContentStyle = useResolvedStyle(contentStyle || {});
54
67
  const resolvedHeaderStyle = useResolvedStyle(headerStyle || {});
55
68
  const resolvedMaskStyle = useResolvedStyle(maskStyle || {});
56
- if (!visible) return null;
69
+ const { mounted, handleExitFinished } = useOverlayPresence(!!visible);
70
+ if (!mounted) return null;
57
71
  const isSheet = position === "bottom";
58
72
  const hide = () => onHide?.("hide");
59
73
  const doClick = async (callback) => {
@@ -121,108 +135,145 @@ function KitsConfirm(props) {
121
135
  ] }) });
122
136
  };
123
137
  if (isSheet) {
124
- return /* @__PURE__ */ jsx(Modal, { visible: true, transparent: true, animationType: "none", onRequestClose: hide, children: /* @__PURE__ */ jsxs(Animated.View, { entering: FadeIn.duration(overlayAnimations.scrim.enterDuration), style: [styles.sheetOverlay, resolvedMaskStyle], children: [
125
- /* @__PURE__ */ jsx(Pressable, { style: StyleSheet.absoluteFill, onPress: hide }),
126
- /* @__PURE__ */ jsxs(
127
- Animated.View,
128
- {
129
- entering: SlideInDown.springify().damping(overlayAnimations.sheet.enter.damping).stiffness(overlayAnimations.sheet.enter.stiffness),
130
- style: [
131
- styles.sheetPanel,
132
- { backgroundColor: panelBg, paddingBottom: 24 + insets.bottom },
133
- resolvedStyle,
134
- resolvedContentStyle
135
- ],
136
- children: [
137
- /* @__PURE__ */ jsx(View, { style: [styles.grabber, { backgroundColor: grabberColor }] }),
138
- header != null && /* @__PURE__ */ jsx(Text, { style: [styles.sheetHeader, { color: textColor }, resolvedHeaderStyle], children: header }),
139
- message != null && /* @__PURE__ */ jsx(Text, { style: [styles.sheetMessage, { color: subtextColor }], children: message }),
140
- children,
141
- renderActions(true)
142
- ]
143
- }
144
- )
145
- ] }) });
138
+ return /* @__PURE__ */ jsx(Modal, { visible: true, transparent: true, animationType: "none", onRequestClose: hide, children: visible && /* @__PURE__ */ jsxs(
139
+ Animated.View,
140
+ {
141
+ entering: FadeIn.duration(overlayAnimations.scrim.enterDuration),
142
+ exiting: FadeOut.duration(overlayAnimations.scrim.exitDuration),
143
+ style: [styles.sheetOverlay, { backgroundColor: scrimColor }, resolvedMaskStyle],
144
+ children: [
145
+ /* @__PURE__ */ jsx(Pressable, { style: StyleSheet.absoluteFill, onPress: hide }),
146
+ /* @__PURE__ */ jsxs(
147
+ Animated.View,
148
+ {
149
+ entering: SlideInDown.springify().damping(overlayAnimations.sheet.enter.damping).stiffness(overlayAnimations.sheet.enter.stiffness).mass(overlayAnimations.sheet.enter.mass),
150
+ exiting: SlideOutDown.duration(overlayAnimations.sheet.exitDuration).easing(Easing.in(Easing.ease)).withCallback((finished) => {
151
+ "worklet";
152
+ if (finished) runOnJS(handleExitFinished)();
153
+ }),
154
+ style: [
155
+ styles.sheetPanel,
156
+ { backgroundColor: panelBg, paddingBottom: 24 + insets.bottom },
157
+ resolvedStyle,
158
+ resolvedContentStyle
159
+ ],
160
+ children: [
161
+ /* @__PURE__ */ jsx(View, { style: [styles.grabber, { backgroundColor: grabberColor }] }),
162
+ header != null && /* @__PURE__ */ jsx(Text, { style: [styles.sheetHeader, { color: textColor }, resolvedHeaderStyle], children: header }),
163
+ message != null && /* @__PURE__ */ jsx(Text, { style: [styles.sheetMessage, { color: subtextColor }], children: message }),
164
+ children,
165
+ renderActions(true)
166
+ ]
167
+ }
168
+ )
169
+ ]
170
+ }
171
+ ) });
146
172
  }
147
173
  if (content) {
148
- return /* @__PURE__ */ jsx(Modal, { visible: true, transparent: true, animationType: "none", onRequestClose: hide, children: /* @__PURE__ */ jsxs(Animated.View, { entering: FadeIn.duration(overlayAnimations.scrim.enterDuration), style: [styles.overlay, resolvedMaskStyle], children: [
149
- /* @__PURE__ */ jsx(Pressable, { style: StyleSheet.absoluteFill, onPress: hide }),
150
- /* @__PURE__ */ jsx(
151
- Animated.View,
152
- {
153
- entering: ZoomIn.springify().damping(overlayAnimations.confirm.content.damping).stiffness(overlayAnimations.confirm.content.stiffness),
154
- style: [
155
- styles.panel,
156
- { backgroundColor: surfaceColor, minWidth: 250, maxWidth: 380 },
157
- resolvedStyle,
158
- resolvedContentStyle
159
- ],
160
- children: content
161
- }
162
- )
163
- ] }) });
174
+ return /* @__PURE__ */ jsx(Modal, { visible: true, transparent: true, animationType: "none", onRequestClose: hide, children: visible && /* @__PURE__ */ jsxs(
175
+ Animated.View,
176
+ {
177
+ entering: FadeIn.duration(overlayAnimations.scrim.enterDuration),
178
+ exiting: FadeOut.duration(overlayAnimations.scrim.exitDuration),
179
+ style: [styles.overlay, { backgroundColor: scrimColor }, resolvedMaskStyle],
180
+ children: [
181
+ /* @__PURE__ */ jsx(Pressable, { style: StyleSheet.absoluteFill, onPress: hide }),
182
+ /* @__PURE__ */ jsx(
183
+ Animated.View,
184
+ {
185
+ entering: ZoomIn.springify().damping(overlayAnimations.confirm.content.damping).stiffness(overlayAnimations.confirm.content.stiffness).mass(overlayAnimations.confirm.content.mass),
186
+ exiting: ZoomOut.duration(overlayAnimations.confirm.exitDuration).easing(Easing.in(Easing.ease)).withCallback((finished) => {
187
+ "worklet";
188
+ if (finished) runOnJS(handleExitFinished)();
189
+ }),
190
+ style: [
191
+ styles.panel,
192
+ { backgroundColor: surfaceColor, minWidth: 250, maxWidth: 380 },
193
+ resolvedStyle,
194
+ resolvedContentStyle
195
+ ],
196
+ children: content
197
+ }
198
+ )
199
+ ]
200
+ }
201
+ ) });
164
202
  }
165
- return /* @__PURE__ */ jsx(Modal, { visible: true, transparent: true, animationType: "none", onRequestClose: hide, children: /* @__PURE__ */ jsxs(Animated.View, { entering: FadeIn.duration(overlayAnimations.scrim.enterDuration), style: [styles.overlay, resolvedMaskStyle], children: [
166
- /* @__PURE__ */ jsx(Pressable, { style: StyleSheet.absoluteFill, onPress: hide }),
167
- /* @__PURE__ */ jsxs(View, { style: styles.cardStack, children: [
168
- showIcon && /* @__PURE__ */ jsx(
169
- Animated.View,
170
- {
171
- entering: ZoomIn.springify().damping(overlayAnimations.confirm.icon.damping).stiffness(overlayAnimations.confirm.icon.stiffness).delay(overlayAnimations.confirm.icon.delay),
172
- style: [styles.iconBubble, { backgroundColor: colors.iconBg }],
173
- children: brandLogo ? brandLogo : typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon, size: "xl", color: colors.iconFg }) : icon
174
- }
175
- ),
176
- /* @__PURE__ */ jsxs(
177
- Animated.View,
178
- {
179
- entering: ZoomIn.springify().damping(overlayAnimations.confirm.enter.damping).stiffness(overlayAnimations.confirm.enter.stiffness),
180
- style: [
181
- styles.panel,
203
+ return /* @__PURE__ */ jsx(Modal, { visible: true, transparent: true, animationType: "none", onRequestClose: hide, children: visible && /* @__PURE__ */ jsxs(
204
+ Animated.View,
205
+ {
206
+ entering: FadeIn.duration(overlayAnimations.scrim.enterDuration),
207
+ exiting: FadeOut.duration(overlayAnimations.scrim.exitDuration),
208
+ style: [styles.overlay, { backgroundColor: scrimColor }, resolvedMaskStyle],
209
+ children: [
210
+ /* @__PURE__ */ jsx(Pressable, { style: StyleSheet.absoluteFill, onPress: hide }),
211
+ /* @__PURE__ */ jsxs(View, { style: styles.cardStack, children: [
212
+ showIcon && /* @__PURE__ */ jsx(
213
+ Animated.View,
214
+ {
215
+ entering: ZoomIn.springify().damping(overlayAnimations.confirm.icon.damping).stiffness(overlayAnimations.confirm.icon.stiffness).mass(overlayAnimations.confirm.icon.mass).delay(overlayAnimations.confirm.icon.delay),
216
+ exiting: ZoomOut.duration(overlayAnimations.confirm.exitDuration).easing(Easing.in(Easing.ease)),
217
+ style: [styles.iconBubble, { backgroundColor: colors.iconBg }],
218
+ children: brandLogo ? brandLogo : typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon, size: "xl", color: colors.iconFg }) : icon
219
+ }
220
+ ),
221
+ /* @__PURE__ */ jsxs(
222
+ Animated.View,
182
223
  {
183
- backgroundColor: panelBg,
184
- paddingTop: showIcon ? 48 : 24,
185
- gap: 10
186
- },
187
- resolvedStyle,
188
- resolvedContentStyle
189
- ],
190
- children: [
191
- /* @__PURE__ */ jsx(Pressable, { style: styles.closeBtn, onPress: hide, hitSlop: 12, children: /* @__PURE__ */ jsx(Text, { style: { fontSize: 18, color: subtextColor }, children: "\u2715" }) }),
192
- header != null && /* @__PURE__ */ jsx(Text, { style: [styles.header, { color: textColor }, resolvedHeaderStyle], children: header }),
193
- message != null && /* @__PURE__ */ jsx(Text, { style: [styles.message, { color: subtextColor }], children: message }),
194
- children,
195
- renderActions(false)
196
- ]
197
- }
198
- )
199
- ] })
200
- ] }) });
224
+ entering: ZoomIn.springify().damping(overlayAnimations.confirm.enter.damping).stiffness(overlayAnimations.confirm.enter.stiffness).mass(overlayAnimations.confirm.enter.mass),
225
+ exiting: ZoomOut.duration(overlayAnimations.confirm.exitDuration).easing(Easing.in(Easing.ease)).withCallback((finished) => {
226
+ "worklet";
227
+ if (finished) runOnJS(handleExitFinished)();
228
+ }),
229
+ style: [
230
+ styles.panel,
231
+ {
232
+ backgroundColor: panelBg,
233
+ paddingTop: showIcon ? 48 : 24,
234
+ gap: 10
235
+ },
236
+ resolvedStyle,
237
+ resolvedContentStyle
238
+ ],
239
+ children: [
240
+ /* @__PURE__ */ jsx(Pressable, { style: styles.closeBtn, onPress: hide, hitSlop: 12, children: /* @__PURE__ */ jsx(Text, { style: { fontSize: 18, color: subtextColor }, children: "\u2715" }) }),
241
+ header != null && /* @__PURE__ */ jsx(Text, { style: [styles.header, { color: textColor }, resolvedHeaderStyle], children: header }),
242
+ message != null && /* @__PURE__ */ jsx(Text, { style: [styles.message, { color: subtextColor }], children: message }),
243
+ children,
244
+ renderActions(false)
245
+ ]
246
+ }
247
+ )
248
+ ] })
249
+ ]
250
+ }
251
+ ) });
201
252
  }
202
253
  const styles = StyleSheet.create({
203
254
  overlay: {
204
255
  flex: 1,
205
- backgroundColor: "rgba(0,0,0,0.55)",
206
256
  justifyContent: "center",
207
257
  alignItems: "center",
208
258
  padding: 28
209
259
  },
210
260
  sheetOverlay: {
211
261
  flex: 1,
212
- backgroundColor: "rgba(0,0,0,0.55)",
213
262
  justifyContent: "flex-end"
214
263
  },
215
264
  sheetPanel: {
265
+ // 24 == radii.2xl, top corners only (bottom stays square).
216
266
  borderTopLeftRadius: 24,
217
267
  borderTopRightRadius: 24,
218
268
  paddingHorizontal: 24,
219
269
  paddingTop: 10,
220
270
  gap: 14,
221
- elevation: 16,
271
+ // Subtle elevation (upward for a sheet): low opacity, wide blur, minimal offset.
272
+ elevation: 6,
222
273
  shadowColor: "#000",
223
- shadowOffset: { width: 0, height: -4 },
274
+ shadowOffset: { width: 0, height: -2 },
224
275
  shadowOpacity: 0.15,
225
- shadowRadius: 16
276
+ shadowRadius: 20
226
277
  },
227
278
  grabber: {
228
279
  width: 40,
@@ -262,14 +313,16 @@ const styles = StyleSheet.create({
262
313
  },
263
314
  panel: {
264
315
  alignSelf: "stretch",
265
- borderRadius: 16,
316
+ // 20 == radii.xl. Side padding (24) == bottom padding (24) for even rhythm.
317
+ borderRadius: 20,
266
318
  paddingHorizontal: 24,
267
319
  paddingBottom: 24,
268
- elevation: 16,
320
+ // Subtle elevation: low opacity, wide blur, minimal offset.
321
+ elevation: 6,
269
322
  shadowColor: "#000",
270
- shadowOffset: { width: 0, height: 8 },
271
- shadowOpacity: 0.2,
272
- shadowRadius: 16,
323
+ shadowOffset: { width: 0, height: 2 },
324
+ shadowOpacity: 0.15,
325
+ shadowRadius: 20,
273
326
  alignItems: "center"
274
327
  },
275
328
  closeBtn: {
@@ -288,7 +341,8 @@ const styles = StyleSheet.create({
288
341
  fontSize: 14,
289
342
  textAlign: "center",
290
343
  lineHeight: 20,
291
- marginBottom: 24
344
+ // Tightened so top/bottom whitespace around the actions reads balanced.
345
+ marginBottom: 16
292
346
  },
293
347
  buttonRow: {
294
348
  flexDirection: "row",
@@ -299,15 +353,18 @@ const styles = StyleSheet.create({
299
353
  actionBtn: {
300
354
  paddingVertical: 12,
301
355
  paddingHorizontal: 24,
302
- borderRadius: 8,
356
+ // Pill (== radii.pill). Buttons here are raw Pressables, not kits Button,
357
+ // so the pill comes from borderRadius — the pattern the `buttons` array
358
+ // path (`b.rounded && {borderRadius: 999}`) already uses in this file.
359
+ borderRadius: 999,
303
360
  minWidth: 100,
304
361
  alignItems: "center",
305
362
  justifyContent: "center"
306
363
  },
307
- // Taller, rounder buttons for the bottom-sheet action row.
364
+ // Taller buttons for the bottom-sheet action row (pill shape shared).
308
365
  actionBtnSheet: {
309
366
  paddingVertical: 16,
310
- borderRadius: 12
367
+ borderRadius: 999
311
368
  },
312
369
  actionBtnOutlined: {
313
370
  backgroundColor: "transparent",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/overlay/ConfirmDialog/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport {Modal, Pressable, StyleSheet, View} from \"react-native\";\nimport Animated, {FadeIn, SlideInDown, ZoomIn} from \"react-native-reanimated\";\nimport {useSafeAreaInsets} from \"react-native-safe-area-context\";\nimport {Icon, Text} from \"../../../_compat\";\nimport type {IConfirmDialogProps} from \"@lmb-it/kitsconcerto-types\";\nimport {useKitsTheme} from \"../../../contexts/Theme\";\nimport {useSeverityColors, useAllSeverityColors} from \"../../../hooks/useSeverityColors\";\nimport {useResolvedStyle} from \"../../../hooks\";\nimport {overlayAnimations as anim} from \"../../../animations\";\n\nexport default function KitsConfirm(props: IConfirmDialogProps) {\n const {\n visible,\n header,\n message,\n icon,\n type = \"secondary\",\n accept,\n reject,\n acceptLabel = \"Accept\",\n rejectLabel = \"Reject\",\n buttons,\n headless,\n defaultUI,\n async: asyncMode,\n onHide,\n content,\n children,\n position = \"center\",\n style,\n contentStyle,\n headerStyle,\n maskStyle,\n // LEGIT-PLATFORM-ONLY (web): acceptIcon/rejectIcon take PrimeReact\n // icon classes ('pi pi-*') with no native rendering path — use the\n // `buttons` array for custom native actions. acceptClassName/\n // rejectClassName are CSS classes; appendTo is a DOM portal target.\n ...rest\n } = props;\n\n const {resolveToken, theme} = useKitsTheme();\n const colors = useSeverityColors(type);\n const allColors = useAllSeverityColors();\n const insets = useSafeAreaInsets();\n\n const surfaceColor = resolveToken('surface-card');\n const textColor = resolveToken('text');\n const subtextColor = resolveToken('gray.500');\n const grabberColor = resolveToken('gray.300');\n const brandLogo = type === 'brand' ? theme.config.logo : null;\n\n const resolvedStyle = useResolvedStyle(style || {});\n const resolvedContentStyle = useResolvedStyle(contentStyle || {});\n const resolvedHeaderStyle = useResolvedStyle(headerStyle || {});\n const resolvedMaskStyle = useResolvedStyle(maskStyle || {});\n\n if (!visible) return null;\n\n const isSheet = position === 'bottom';\n const hide = () => onHide?.('hide');\n\n const doClick = async (callback?: () => void) => {\n if (asyncMode) {\n await callback?.();\n hide();\n } else {\n hide();\n callback?.();\n }\n };\n\n const showIcon = icon != null || brandLogo != null;\n // Panel always uses surface-card. Severity (danger/success/...) only colours\n // the icon bubble and the action button — not the whole panel — otherwise\n // a danger confirm renders as a red wash with the underlying screen\n // bleeding through.\n const panelBg = surfaceColor;\n\n // Shared action row. `stretch` makes each button flex:1 (bottom-sheet,\n // full-width). The default accept/reject pair is ordered accept-first in the\n // centered card but reject-first (Cancel | Confirm) in the sheet, matching\n // the platform-native bottom-sheet convention.\n const renderActions = (stretch: boolean) => {\n if (buttons?.length) {\n return (\n <View style={styles.buttonRow}>\n {buttons.map((b, i) => {\n const btnColor = allColors[b.type ?? type]?.solid ?? colors.solid;\n return (\n <Pressable\n key={i}\n disabled={b.disabled}\n style={[\n styles.actionBtn,\n stretch && styles.actionBtnSheet,\n stretch && {flex: 1},\n b.outlined\n ? {backgroundColor: \"transparent\", borderColor: btnColor, borderWidth: 1.5}\n : {backgroundColor: btnColor},\n b.rounded && {borderRadius: 999},\n b.disabled && {opacity: 0.5},\n ]}\n onPress={() => b.onClick(hide, accept, reject)}\n >\n <Text style={{\n color: b.outlined ? btnColor : \"#fff\",\n fontWeight: \"600\",\n fontSize: 14,\n }}>\n {b.title}\n </Text>\n </Pressable>\n );\n })}\n </View>\n );\n }\n\n const acceptBtn = (\n <Pressable\n key=\"accept\"\n style={[styles.actionBtn, stretch && styles.actionBtnSheet, {backgroundColor: colors.solid, flex: 1}]}\n onPress={() => doClick(accept)}\n >\n <Text style={styles.btnTextPrimary}>{acceptLabel}</Text>\n </Pressable>\n );\n const rejectBtn = !defaultUI ? (\n <Pressable\n key=\"reject\"\n style={[styles.actionBtn, styles.actionBtnOutlined, stretch && styles.actionBtnSheet, {borderColor: colors.solid, flex: 1}]}\n onPress={() => doClick(reject)}\n >\n <Text style={[styles.btnTextOutlined, {color: colors.solid}]}>{rejectLabel}</Text>\n </Pressable>\n ) : null;\n\n return (\n <View style={styles.buttonRow}>\n {stretch ? <>{rejectBtn}{acceptBtn}</> : <>{acceptBtn}{rejectBtn}</>}\n </View>\n );\n };\n\n // ── Bottom sheet ────────────────────────────────────────\n if (isSheet) {\n return (\n <Modal visible transparent animationType=\"none\" onRequestClose={hide}>\n <Animated.View entering={FadeIn.duration(anim.scrim.enterDuration)} style={[styles.sheetOverlay, resolvedMaskStyle as any]}>\n <Pressable style={StyleSheet.absoluteFill} onPress={hide}/>\n <Animated.View\n entering={SlideInDown.springify().damping(anim.sheet.enter.damping).stiffness(anim.sheet.enter.stiffness)}\n style={[\n styles.sheetPanel,\n {backgroundColor: panelBg, paddingBottom: 24 + insets.bottom},\n resolvedStyle as any,\n resolvedContentStyle as any,\n ]}\n >\n {/* Grabber */}\n <View style={[styles.grabber, {backgroundColor: grabberColor}]}/>\n\n {/* Header */}\n {header != null && (\n <Text style={[styles.sheetHeader, {color: textColor}, resolvedHeaderStyle as any]}>\n {header as React.ReactNode}\n </Text>\n )}\n\n {/* Message */}\n {message != null && (\n <Text style={[styles.sheetMessage, {color: subtextColor}]}>\n {message as React.ReactNode}\n </Text>\n )}\n\n {/* Injected item / extra content */}\n {children}\n\n {/* Actions */}\n {renderActions(true)}\n </Animated.View>\n </Animated.View>\n </Modal>\n );\n }\n\n // ── Content-only mode (prompt) ──────────────────────────\n if (content) {\n return (\n <Modal visible transparent animationType=\"none\" onRequestClose={hide}>\n <Animated.View entering={FadeIn.duration(anim.scrim.enterDuration)} style={[styles.overlay, resolvedMaskStyle as any]}>\n <Pressable style={StyleSheet.absoluteFill} onPress={hide}/>\n <Animated.View\n entering={ZoomIn.springify().damping(anim.confirm.content.damping).stiffness(anim.confirm.content.stiffness)}\n style={[\n styles.panel,\n {backgroundColor: surfaceColor, minWidth: 250, maxWidth: 380},\n resolvedStyle as any,\n resolvedContentStyle as any,\n ]}\n >\n {content as React.ReactNode}\n </Animated.View>\n </Animated.View>\n </Modal>\n );\n }\n\n return (\n <Modal visible transparent animationType=\"none\" onRequestClose={hide}>\n <Animated.View entering={FadeIn.duration(anim.scrim.enterDuration)} style={[styles.overlay, resolvedMaskStyle as any]}>\n <Pressable style={StyleSheet.absoluteFill} onPress={hide}/>\n\n {/* Card + icon stack: icon sits above the card */}\n <View style={styles.cardStack}>\n {/* Soft-circle icon bubble */}\n {showIcon && (\n <Animated.View\n entering={ZoomIn.springify().damping(anim.confirm.icon.damping).stiffness(anim.confirm.icon.stiffness).delay(anim.confirm.icon.delay ?? 0)}\n style={[styles.iconBubble, {backgroundColor: colors.iconBg}]}\n >\n {brandLogo ? brandLogo : typeof icon === \"string\" ? (\n <Icon name={icon as never} size={'xl'} color={colors.iconFg}/>\n ) : (\n icon\n )}\n </Animated.View>\n )}\n\n {/* Panel */}\n <Animated.View\n entering={ZoomIn.springify().damping(anim.confirm.enter.damping).stiffness(anim.confirm.enter.stiffness)}\n style={[\n styles.panel,\n {\n backgroundColor: panelBg,\n paddingTop: showIcon ? 48 : 24,\n gap: 10,\n },\n resolvedStyle as any,\n resolvedContentStyle as any,\n ]}\n >\n {/* Close button */}\n <Pressable style={styles.closeBtn} onPress={hide} hitSlop={12}>\n <Text style={{fontSize: 18, color: subtextColor}}>✕</Text>\n </Pressable>\n\n {/* Header */}\n {header != null && (\n <Text style={[styles.header, {color: textColor}, resolvedHeaderStyle as any]}>\n {header as React.ReactNode}\n </Text>\n )}\n\n {/* Message */}\n {message != null && (\n <Text style={[styles.message, {color: subtextColor}]}>\n {message as React.ReactNode}\n </Text>\n )}\n\n {/* Children */}\n {children}\n\n {/* Buttons */}\n {renderActions(false)}\n </Animated.View>\n </View>\n </Animated.View>\n </Modal>\n );\n}\n\nconst styles = StyleSheet.create({\n overlay: {\n flex: 1,\n backgroundColor: \"rgba(0,0,0,0.55)\",\n justifyContent: \"center\",\n alignItems: \"center\",\n padding: 28,\n },\n sheetOverlay: {\n flex: 1,\n backgroundColor: \"rgba(0,0,0,0.55)\",\n justifyContent: \"flex-end\",\n },\n sheetPanel: {\n borderTopLeftRadius: 24,\n borderTopRightRadius: 24,\n paddingHorizontal: 24,\n paddingTop: 10,\n gap: 14,\n elevation: 16,\n shadowColor: \"#000\",\n shadowOffset: {width: 0, height: -4},\n shadowOpacity: 0.15,\n shadowRadius: 16,\n },\n grabber: {\n width: 40,\n height: 5,\n borderRadius: 999,\n alignSelf: \"center\",\n marginBottom: 6,\n },\n sheetHeader: {\n fontSize: 24,\n fontWeight: \"700\",\n textAlign: \"left\",\n },\n sheetMessage: {\n fontSize: 15,\n lineHeight: 22,\n textAlign: \"left\",\n },\n cardStack: {\n minWidth: 250,\n maxWidth: 380,\n alignItems: \"center\",\n },\n iconBubble: {\n width: 72,\n height: 72,\n borderRadius: 36,\n justifyContent: \"center\",\n alignItems: \"center\",\n zIndex: 2,\n marginBottom: -36,\n elevation: 8,\n shadowColor: \"#000\",\n shadowOffset: {width: 0, height: 4},\n shadowOpacity: 0.15,\n shadowRadius: 8,\n },\n panel: {\n alignSelf: \"stretch\",\n borderRadius: 16,\n paddingHorizontal: 24,\n paddingBottom: 24,\n elevation: 16,\n shadowColor: \"#000\",\n shadowOffset: {width: 0, height: 8},\n shadowOpacity: 0.2,\n shadowRadius: 16,\n alignItems: \"center\",\n },\n closeBtn: {\n position: \"absolute\",\n top: 12,\n right: 14,\n zIndex: 3,\n },\n header: {\n fontSize: 22,\n fontWeight: \"700\",\n textAlign: \"center\",\n marginBottom: 8,\n },\n message: {\n fontSize: 14,\n textAlign: \"center\",\n lineHeight: 20,\n marginBottom: 24,\n },\n buttonRow: {\n flexDirection: \"row\",\n justifyContent: \"center\",\n gap: 12,\n width: \"100%\",\n },\n actionBtn: {\n paddingVertical: 12,\n paddingHorizontal: 24,\n borderRadius: 8,\n minWidth: 100,\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n // Taller, rounder buttons for the bottom-sheet action row.\n actionBtnSheet: {\n paddingVertical: 16,\n borderRadius: 12,\n },\n actionBtnOutlined: {\n backgroundColor: \"transparent\",\n borderWidth: 1.5,\n },\n btnTextPrimary: {\n color: \"#fff\",\n fontWeight: \"600\",\n fontSize: 14,\n },\n btnTextOutlined: {\n fontWeight: \"600\",\n fontSize: 14,\n },\n});\n"],"names":["anim"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/overlay/ConfirmDialog/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport {Modal, Pressable, StyleSheet, View} from \"react-native\";\nimport Animated, {Easing, FadeIn, FadeOut, runOnJS, SlideInDown, SlideOutDown, ZoomIn, ZoomOut} from \"react-native-reanimated\";\nimport {useSafeAreaInsets} from \"react-native-safe-area-context\";\nimport {Icon, Text} from \"../../../_compat\";\nimport type {IConfirmDialogProps} from \"@lmb-it/kitsconcerto-types\";\nimport {useKitsTheme} from \"../../../contexts/Theme\";\nimport {useSeverityColors, useAllSeverityColors} from \"../../../hooks/useSeverityColors\";\nimport {useResolvedStyle} from \"../../../hooks\";\nimport {overlayAnimations as anim} from \"../../../animations\";\n\n/**\n * Keeps the RN Modal mounted through the exit animation. `visible` drives the\n * inner scrim + panel entering/exiting; the Modal itself stays mounted until\n * the panel's exit animation reports finished, then unmounts.\n *\n * Re-entrancy: a new `visible=true` during an exit cancels the panel's exit\n * (reanimated reports `finished=false`, so the unmount is skipped) and the\n * inner re-enters cleanly; `visibleRef` is a second guard for the case where\n * the exit had already completed.\n */\nfunction useOverlayPresence(visible: boolean) {\n const [mounted, setMounted] = React.useState(visible);\n const visibleRef = React.useRef(visible);\n React.useEffect(() => {\n visibleRef.current = visible;\n if (visible) setMounted(true);\n }, [visible]);\n // Runs on the JS thread (dispatched via runOnJS from the exit worklet).\n const handleExitFinished = React.useCallback(() => {\n if (!visibleRef.current) setMounted(false);\n }, []);\n return {mounted, handleExitFinished};\n}\n\nexport default function KitsConfirm(props: IConfirmDialogProps) {\n const {\n visible,\n header,\n message,\n icon,\n type = \"secondary\",\n accept,\n reject,\n acceptLabel = \"Accept\",\n rejectLabel = \"Reject\",\n buttons,\n headless,\n defaultUI,\n async: asyncMode,\n onHide,\n content,\n children,\n position = \"center\",\n style,\n contentStyle,\n headerStyle,\n maskStyle,\n // LEGIT-PLATFORM-ONLY (web): acceptIcon/rejectIcon take PrimeReact\n // icon classes ('pi pi-*') with no native rendering path — use the\n // `buttons` array for custom native actions. acceptClassName/\n // rejectClassName are CSS classes; appendTo is a DOM portal target.\n ...rest\n } = props;\n\n const {resolveToken, theme} = useKitsTheme();\n const colors = useSeverityColors(type);\n const allColors = useAllSeverityColors();\n const insets = useSafeAreaInsets();\n\n const surfaceColor = resolveToken('surface-card');\n const textColor = resolveToken('text');\n const subtextColor = resolveToken('gray.500');\n const grabberColor = resolveToken('gray.300');\n // Scrim via the literal alpha overlay token → rgba(0,0,0,0.4) in both modes.\n const scrimColor = resolveToken('black-alpha-40');\n const brandLogo = type === 'brand' ? theme.config.logo : null;\n\n const resolvedStyle = useResolvedStyle(style || {});\n const resolvedContentStyle = useResolvedStyle(contentStyle || {});\n const resolvedHeaderStyle = useResolvedStyle(headerStyle || {});\n const resolvedMaskStyle = useResolvedStyle(maskStyle || {});\n\n const {mounted, handleExitFinished} = useOverlayPresence(!!visible);\n if (!mounted) return null;\n\n const isSheet = position === 'bottom';\n const hide = () => onHide?.('hide');\n\n const doClick = async (callback?: () => void) => {\n if (asyncMode) {\n await callback?.();\n hide();\n } else {\n hide();\n callback?.();\n }\n };\n\n const showIcon = icon != null || brandLogo != null;\n // Panel always uses surface-card. Severity (danger/success/...) only colours\n // the icon bubble and the action button — not the whole panel — otherwise\n // a danger confirm renders as a red wash with the underlying screen\n // bleeding through.\n const panelBg = surfaceColor;\n\n // Shared action row. `stretch` makes each button flex:1 (bottom-sheet,\n // full-width). The default accept/reject pair is ordered accept-first in the\n // centered card but reject-first (Cancel | Confirm) in the sheet, matching\n // the platform-native bottom-sheet convention.\n const renderActions = (stretch: boolean) => {\n if (buttons?.length) {\n return (\n <View style={styles.buttonRow}>\n {buttons.map((b, i) => {\n const btnColor = allColors[b.type ?? type]?.solid ?? colors.solid;\n return (\n <Pressable\n key={i}\n disabled={b.disabled}\n style={[\n styles.actionBtn,\n stretch && styles.actionBtnSheet,\n stretch && {flex: 1},\n b.outlined\n ? {backgroundColor: \"transparent\", borderColor: btnColor, borderWidth: 1.5}\n : {backgroundColor: btnColor},\n b.rounded && {borderRadius: 999},\n b.disabled && {opacity: 0.5},\n ]}\n onPress={() => b.onClick(hide, accept, reject)}\n >\n <Text style={{\n color: b.outlined ? btnColor : \"#fff\",\n fontWeight: \"600\",\n fontSize: 14,\n }}>\n {b.title}\n </Text>\n </Pressable>\n );\n })}\n </View>\n );\n }\n\n const acceptBtn = (\n <Pressable\n key=\"accept\"\n style={[styles.actionBtn, stretch && styles.actionBtnSheet, {backgroundColor: colors.solid, flex: 1}]}\n onPress={() => doClick(accept)}\n >\n <Text style={styles.btnTextPrimary}>{acceptLabel}</Text>\n </Pressable>\n );\n const rejectBtn = !defaultUI ? (\n <Pressable\n key=\"reject\"\n style={[styles.actionBtn, styles.actionBtnOutlined, stretch && styles.actionBtnSheet, {borderColor: colors.solid, flex: 1}]}\n onPress={() => doClick(reject)}\n >\n <Text style={[styles.btnTextOutlined, {color: colors.solid}]}>{rejectLabel}</Text>\n </Pressable>\n ) : null;\n\n return (\n <View style={styles.buttonRow}>\n {stretch ? <>{rejectBtn}{acceptBtn}</> : <>{acceptBtn}{rejectBtn}</>}\n </View>\n );\n };\n\n // ── Bottom sheet ────────────────────────────────────────\n if (isSheet) {\n return (\n <Modal visible transparent animationType=\"none\" onRequestClose={hide}>\n {visible && (\n <Animated.View\n entering={FadeIn.duration(anim.scrim.enterDuration)}\n exiting={FadeOut.duration(anim.scrim.exitDuration)}\n style={[styles.sheetOverlay, {backgroundColor: scrimColor}, resolvedMaskStyle as any]}\n >\n <Pressable style={StyleSheet.absoluteFill} onPress={hide}/>\n <Animated.View\n entering={SlideInDown.springify().damping(anim.sheet.enter.damping).stiffness(anim.sheet.enter.stiffness).mass(anim.sheet.enter.mass ?? 1)}\n exiting={SlideOutDown.duration(anim.sheet.exitDuration).easing(Easing.in(Easing.ease)).withCallback((finished) => {\n 'worklet';\n if (finished) runOnJS(handleExitFinished)();\n })}\n style={[\n styles.sheetPanel,\n {backgroundColor: panelBg, paddingBottom: 24 + insets.bottom},\n resolvedStyle as any,\n resolvedContentStyle as any,\n ]}\n >\n {/* Grabber */}\n <View style={[styles.grabber, {backgroundColor: grabberColor}]}/>\n\n {/* Header */}\n {header != null && (\n <Text style={[styles.sheetHeader, {color: textColor}, resolvedHeaderStyle as any]}>\n {header as React.ReactNode}\n </Text>\n )}\n\n {/* Message */}\n {message != null && (\n <Text style={[styles.sheetMessage, {color: subtextColor}]}>\n {message as React.ReactNode}\n </Text>\n )}\n\n {/* Injected item / extra content */}\n {children}\n\n {/* Actions */}\n {renderActions(true)}\n </Animated.View>\n </Animated.View>\n )}\n </Modal>\n );\n }\n\n // ── Content-only mode (prompt) ──────────────────────────\n if (content) {\n return (\n <Modal visible transparent animationType=\"none\" onRequestClose={hide}>\n {visible && (\n <Animated.View\n entering={FadeIn.duration(anim.scrim.enterDuration)}\n exiting={FadeOut.duration(anim.scrim.exitDuration)}\n style={[styles.overlay, {backgroundColor: scrimColor}, resolvedMaskStyle as any]}\n >\n <Pressable style={StyleSheet.absoluteFill} onPress={hide}/>\n <Animated.View\n entering={ZoomIn.springify().damping(anim.confirm.content.damping).stiffness(anim.confirm.content.stiffness).mass(anim.confirm.content.mass ?? 1)}\n exiting={ZoomOut.duration(anim.confirm.exitDuration).easing(Easing.in(Easing.ease)).withCallback((finished) => {\n 'worklet';\n if (finished) runOnJS(handleExitFinished)();\n })}\n style={[\n styles.panel,\n {backgroundColor: surfaceColor, minWidth: 250, maxWidth: 380},\n resolvedStyle as any,\n resolvedContentStyle as any,\n ]}\n >\n {content as React.ReactNode}\n </Animated.View>\n </Animated.View>\n )}\n </Modal>\n );\n }\n\n return (\n <Modal visible transparent animationType=\"none\" onRequestClose={hide}>\n {visible && (\n <Animated.View\n entering={FadeIn.duration(anim.scrim.enterDuration)}\n exiting={FadeOut.duration(anim.scrim.exitDuration)}\n style={[styles.overlay, {backgroundColor: scrimColor}, resolvedMaskStyle as any]}\n >\n <Pressable style={StyleSheet.absoluteFill} onPress={hide}/>\n\n {/* Card + icon stack: icon sits above the card */}\n <View style={styles.cardStack}>\n {/* Soft-circle icon bubble */}\n {showIcon && (\n <Animated.View\n entering={ZoomIn.springify().damping(anim.confirm.icon.damping).stiffness(anim.confirm.icon.stiffness).mass(anim.confirm.icon.mass ?? 1).delay(anim.confirm.icon.delay ?? 0)}\n exiting={ZoomOut.duration(anim.confirm.exitDuration).easing(Easing.in(Easing.ease))}\n style={[styles.iconBubble, {backgroundColor: colors.iconBg}]}\n >\n {brandLogo ? brandLogo : typeof icon === \"string\" ? (\n <Icon name={icon as never} size={'xl'} color={colors.iconFg}/>\n ) : (\n icon\n )}\n </Animated.View>\n )}\n\n {/* Panel */}\n <Animated.View\n entering={ZoomIn.springify().damping(anim.confirm.enter.damping).stiffness(anim.confirm.enter.stiffness).mass(anim.confirm.enter.mass ?? 1)}\n exiting={ZoomOut.duration(anim.confirm.exitDuration).easing(Easing.in(Easing.ease)).withCallback((finished) => {\n 'worklet';\n if (finished) runOnJS(handleExitFinished)();\n })}\n style={[\n styles.panel,\n {\n backgroundColor: panelBg,\n paddingTop: showIcon ? 48 : 24,\n gap: 10,\n },\n resolvedStyle as any,\n resolvedContentStyle as any,\n ]}\n >\n {/* Close button */}\n <Pressable style={styles.closeBtn} onPress={hide} hitSlop={12}>\n <Text style={{fontSize: 18, color: subtextColor}}>✕</Text>\n </Pressable>\n\n {/* Header */}\n {header != null && (\n <Text style={[styles.header, {color: textColor}, resolvedHeaderStyle as any]}>\n {header as React.ReactNode}\n </Text>\n )}\n\n {/* Message */}\n {message != null && (\n <Text style={[styles.message, {color: subtextColor}]}>\n {message as React.ReactNode}\n </Text>\n )}\n\n {/* Children */}\n {children}\n\n {/* Buttons */}\n {renderActions(false)}\n </Animated.View>\n </View>\n </Animated.View>\n )}\n </Modal>\n );\n}\n\nconst styles = StyleSheet.create({\n overlay: {\n flex: 1,\n justifyContent: \"center\",\n alignItems: \"center\",\n padding: 28,\n },\n sheetOverlay: {\n flex: 1,\n justifyContent: \"flex-end\",\n },\n sheetPanel: {\n // 24 == radii.2xl, top corners only (bottom stays square).\n borderTopLeftRadius: 24,\n borderTopRightRadius: 24,\n paddingHorizontal: 24,\n paddingTop: 10,\n gap: 14,\n // Subtle elevation (upward for a sheet): low opacity, wide blur, minimal offset.\n elevation: 6,\n shadowColor: \"#000\",\n shadowOffset: {width: 0, height: -2},\n shadowOpacity: 0.15,\n shadowRadius: 20,\n },\n grabber: {\n width: 40,\n height: 5,\n borderRadius: 999,\n alignSelf: \"center\",\n marginBottom: 6,\n },\n sheetHeader: {\n fontSize: 24,\n fontWeight: \"700\",\n textAlign: \"left\",\n },\n sheetMessage: {\n fontSize: 15,\n lineHeight: 22,\n textAlign: \"left\",\n },\n cardStack: {\n minWidth: 250,\n maxWidth: 380,\n alignItems: \"center\",\n },\n iconBubble: {\n width: 72,\n height: 72,\n borderRadius: 36,\n justifyContent: \"center\",\n alignItems: \"center\",\n zIndex: 2,\n marginBottom: -36,\n elevation: 8,\n shadowColor: \"#000\",\n shadowOffset: {width: 0, height: 4},\n shadowOpacity: 0.15,\n shadowRadius: 8,\n },\n panel: {\n alignSelf: \"stretch\",\n // 20 == radii.xl. Side padding (24) == bottom padding (24) for even rhythm.\n borderRadius: 20,\n paddingHorizontal: 24,\n paddingBottom: 24,\n // Subtle elevation: low opacity, wide blur, minimal offset.\n elevation: 6,\n shadowColor: \"#000\",\n shadowOffset: {width: 0, height: 2},\n shadowOpacity: 0.15,\n shadowRadius: 20,\n alignItems: \"center\",\n },\n closeBtn: {\n position: \"absolute\",\n top: 12,\n right: 14,\n zIndex: 3,\n },\n header: {\n fontSize: 22,\n fontWeight: \"700\",\n textAlign: \"center\",\n marginBottom: 8,\n },\n message: {\n fontSize: 14,\n textAlign: \"center\",\n lineHeight: 20,\n // Tightened so top/bottom whitespace around the actions reads balanced.\n marginBottom: 16,\n },\n buttonRow: {\n flexDirection: \"row\",\n justifyContent: \"center\",\n gap: 12,\n width: \"100%\",\n },\n actionBtn: {\n paddingVertical: 12,\n paddingHorizontal: 24,\n // Pill (== radii.pill). Buttons here are raw Pressables, not kits Button,\n // so the pill comes from borderRadius — the pattern the `buttons` array\n // path (`b.rounded && {borderRadius: 999}`) already uses in this file.\n borderRadius: 999,\n minWidth: 100,\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n // Taller buttons for the bottom-sheet action row (pill shape shared).\n actionBtnSheet: {\n paddingVertical: 16,\n borderRadius: 999,\n },\n actionBtnOutlined: {\n backgroundColor: \"transparent\",\n borderWidth: 1.5,\n },\n btnTextPrimary: {\n color: \"#fff\",\n fontWeight: \"600\",\n fontSize: 14,\n },\n btnTextOutlined: {\n fontWeight: \"600\",\n fontSize: 14,\n },\n});\n"],"names":["anim"],"mappings":"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"}