@lmb-it/kitsconcerto-native 0.1.294 → 0.1.296

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.
@@ -42,7 +42,6 @@ function KitsConfirm(props) {
42
42
  acceptLabel = "Accept",
43
43
  rejectLabel = "Reject",
44
44
  buttons,
45
- headless,
46
45
  defaultUI,
47
46
  async: asyncMode,
48
47
  onHide,
@@ -52,12 +51,11 @@ function KitsConfirm(props) {
52
51
  style,
53
52
  contentStyle,
54
53
  headerStyle,
55
- maskStyle,
54
+ maskStyle
56
55
  // LEGIT-PLATFORM-ONLY (web): acceptIcon/rejectIcon take PrimeReact
57
56
  // icon classes ('pi pi-*') with no native rendering path — use the
58
57
  // `buttons` array for custom native actions. acceptClassName/
59
58
  // rejectClassName are CSS classes; appendTo is a DOM portal target.
60
- ...rest
61
59
  } = props;
62
60
  const { resolveToken, theme } = KitsThemeProvider_native.useKitsTheme();
63
61
  const colors = useSeverityColors.useSeverityColors(type);
@@ -65,7 +63,7 @@ function KitsConfirm(props) {
65
63
  const insets = reactNativeSafeAreaContext.useSafeAreaInsets();
66
64
  const surfaceColor = resolveToken("surface-card");
67
65
  const textColor = resolveToken("text");
68
- const subtextColor = resolveToken("gray.500");
66
+ const subtextColor = resolveToken("text-secondary");
69
67
  const grabberColor = resolveToken("gray.300");
70
68
  const scrimColor = resolveToken("black-alpha-40");
71
69
  const brandLogo = type === "brand" ? theme.config.logo : null;
@@ -82,8 +80,11 @@ function KitsConfirm(props) {
82
80
  await callback?.();
83
81
  hide();
84
82
  } else {
85
- hide();
86
- callback?.();
83
+ try {
84
+ callback?.();
85
+ } finally {
86
+ hide();
87
+ }
87
88
  }
88
89
  };
89
90
  const showIcon = icon != null || brandLogo != null;
@@ -91,7 +92,8 @@ function KitsConfirm(props) {
91
92
  const renderActions = (stretch) => {
92
93
  if (buttons?.length) {
93
94
  return /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles.buttonRow, children: buttons.map((b, i) => {
94
- const btnColor = allColors[b.type ?? type]?.solid ?? colors.solid;
95
+ const buttonColors = allColors[b.type ?? type] ?? colors;
96
+ const btnColor = buttonColors.solid;
95
97
  return /* @__PURE__ */ jsxRuntime.jsx(
96
98
  reactNative.Pressable,
97
99
  {
@@ -106,7 +108,7 @@ function KitsConfirm(props) {
106
108
  ],
107
109
  onPress: () => b.onClick(hide, accept, reject),
108
110
  children: /* @__PURE__ */ jsxRuntime.jsx(index_native.default, { style: {
109
- color: b.outlined ? btnColor : "#fff",
111
+ color: b.outlined ? btnColor : buttonColors.solidText,
110
112
  fontWeight: "600",
111
113
  fontSize: 14
112
114
  }, children: b.title })
@@ -120,7 +122,7 @@ function KitsConfirm(props) {
120
122
  {
121
123
  style: [styles.actionBtn, stretch && styles.actionBtnSheet, { backgroundColor: colors.solid, flex: 1 }],
122
124
  onPress: () => doClick(accept),
123
- children: /* @__PURE__ */ jsxRuntime.jsx(index_native.default, { style: styles.btnTextPrimary, children: acceptLabel })
125
+ children: /* @__PURE__ */ jsxRuntime.jsx(index_native.default, { style: [styles.btnTextPrimary, { color: colors.solidText }], children: acceptLabel })
124
126
  },
125
127
  "accept"
126
128
  );
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","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, 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, scrimExitDuration} from \"../../../animations\";\nimport {sheetEnter, sheetExit} from \"../sheetMotion\";\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 /* Contains the sheet — see `scrimExitDuration`. */\n exiting={FadeOut.duration(scrimExitDuration(anim.sheet.exitDuration))}\n style={[styles.sheetOverlay, {backgroundColor: scrimColor}, resolvedMaskStyle as any]}\n >\n <Pressable style={StyleSheet.absoluteFill} onPress={hide}/>\n <Animated.View\n /* ⛔ THE SAME FAULT AS `Dialog`'s SHEET, AND THE SAME ANSWER —\n see `../sheetMotion`. `SlideInDown` takes its travel from\n the window, and inside an RN `Modal` the window it measures\n is not the screen, so the panel is placed at rest on frame\n one. Measured on the Dialog, 30 September 2026; this file\n has the identical shape, so it takes the identical fix\n rather than a second one (§5).\n ⚠️ AND THIS FILE IS NOT YET WHOLE. Its panel is still a\n CHILD of the scrim above, so it still inherits the scrim's\n fade — the defect `Dialog` had corrected on 29 September and\n that was recorded then as this file's own next unit. The\n sheet will now slide AND fade here. That is better than not\n sliding, and it is still not the ruled motion. Not fixed in\n this unit, and not left unsaid. */\n entering={sheetEnter(anim.sheet.enter)}\n exiting={sheetExit(anim.sheet.exitDuration, handleExitFinished)}\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 /* Contains the centred panel — see `scrimExitDuration`. */\n exiting={FadeOut.duration(scrimExitDuration(anim.confirm.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 /* Contains the centred panel — see `scrimExitDuration`. */\n exiting={FadeOut.duration(scrimExitDuration(anim.confirm.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":["useKitsTheme","useSeverityColors","useAllSeverityColors","useSafeAreaInsets","useResolvedStyle","jsx","View","Pressable","Text","jsxs","Fragment","Modal","FadeIn","anim","FadeOut","scrimExitDuration","StyleSheet","sheetEnter","sheetExit","ZoomIn","ZoomOut","Easing","runOnJS","Icon"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","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, 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, scrimExitDuration} from \"../../../animations\";\nimport {sheetEnter, sheetExit} from \"../sheetMotion\";\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 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 } = 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('text-secondary');\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 try {\n callback?.();\n } finally {\n hide();\n }\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 buttonColors = allColors[b.type ?? type] ?? colors;\n const btnColor = buttonColors.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 : buttonColors.solidText,\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, {color: colors.solidText}]}>{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 /* Contains the sheet — see `scrimExitDuration`. */\n exiting={FadeOut.duration(scrimExitDuration(anim.sheet.exitDuration))}\n style={[styles.sheetOverlay, {backgroundColor: scrimColor}, resolvedMaskStyle as any]}\n >\n <Pressable style={StyleSheet.absoluteFill} onPress={hide}/>\n <Animated.View\n /* ⛔ THE SAME FAULT AS `Dialog`'s SHEET, AND THE SAME ANSWER —\n see `../sheetMotion`. `SlideInDown` takes its travel from\n the window, and inside an RN `Modal` the window it measures\n is not the screen, so the panel is placed at rest on frame\n one. Measured on the Dialog, 30 September 2026; this file\n has the identical shape, so it takes the identical fix\n rather than a second one (§5).\n ⚠️ AND THIS FILE IS NOT YET WHOLE. Its panel is still a\n CHILD of the scrim above, so it still inherits the scrim's\n fade — the defect `Dialog` had corrected on 29 September and\n that was recorded then as this file's own next unit. The\n sheet will now slide AND fade here. That is better than not\n sliding, and it is still not the ruled motion. Not fixed in\n this unit, and not left unsaid. */\n entering={sheetEnter(anim.sheet.enter)}\n exiting={sheetExit(anim.sheet.exitDuration, handleExitFinished)}\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 /* Contains the centred panel — see `scrimExitDuration`. */\n exiting={FadeOut.duration(scrimExitDuration(anim.confirm.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 /* Contains the centred panel — see `scrimExitDuration`. */\n exiting={FadeOut.duration(scrimExitDuration(anim.confirm.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":["useKitsTheme","useSeverityColors","useAllSeverityColors","useSafeAreaInsets","useResolvedStyle","jsx","View","Pressable","Text","jsxs","Fragment","Modal","FadeIn","anim","FadeOut","scrimExitDuration","StyleSheet","sheetEnter","sheetExit","ZoomIn","ZoomOut","Easing","runOnJS","Icon"],"mappings":"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"}
@@ -38,7 +38,6 @@ function KitsConfirm(props) {
38
38
  acceptLabel = "Accept",
39
39
  rejectLabel = "Reject",
40
40
  buttons,
41
- headless,
42
41
  defaultUI,
43
42
  async: asyncMode,
44
43
  onHide,
@@ -48,12 +47,11 @@ function KitsConfirm(props) {
48
47
  style,
49
48
  contentStyle,
50
49
  headerStyle,
51
- maskStyle,
50
+ maskStyle
52
51
  // LEGIT-PLATFORM-ONLY (web): acceptIcon/rejectIcon take PrimeReact
53
52
  // icon classes ('pi pi-*') with no native rendering path — use the
54
53
  // `buttons` array for custom native actions. acceptClassName/
55
54
  // rejectClassName are CSS classes; appendTo is a DOM portal target.
56
- ...rest
57
55
  } = props;
58
56
  const { resolveToken, theme } = useKitsTheme();
59
57
  const colors = useSeverityColors(type);
@@ -61,7 +59,7 @@ function KitsConfirm(props) {
61
59
  const insets = useSafeAreaInsets();
62
60
  const surfaceColor = resolveToken("surface-card");
63
61
  const textColor = resolveToken("text");
64
- const subtextColor = resolveToken("gray.500");
62
+ const subtextColor = resolveToken("text-secondary");
65
63
  const grabberColor = resolveToken("gray.300");
66
64
  const scrimColor = resolveToken("black-alpha-40");
67
65
  const brandLogo = type === "brand" ? theme.config.logo : null;
@@ -78,8 +76,11 @@ function KitsConfirm(props) {
78
76
  await callback?.();
79
77
  hide();
80
78
  } else {
81
- hide();
82
- callback?.();
79
+ try {
80
+ callback?.();
81
+ } finally {
82
+ hide();
83
+ }
83
84
  }
84
85
  };
85
86
  const showIcon = icon != null || brandLogo != null;
@@ -87,7 +88,8 @@ function KitsConfirm(props) {
87
88
  const renderActions = (stretch) => {
88
89
  if (buttons?.length) {
89
90
  return /* @__PURE__ */ jsx(View, { style: styles.buttonRow, children: buttons.map((b, i) => {
90
- const btnColor = allColors[b.type ?? type]?.solid ?? colors.solid;
91
+ const buttonColors = allColors[b.type ?? type] ?? colors;
92
+ const btnColor = buttonColors.solid;
91
93
  return /* @__PURE__ */ jsx(
92
94
  Pressable,
93
95
  {
@@ -102,7 +104,7 @@ function KitsConfirm(props) {
102
104
  ],
103
105
  onPress: () => b.onClick(hide, accept, reject),
104
106
  children: /* @__PURE__ */ jsx(Text, { style: {
105
- color: b.outlined ? btnColor : "#fff",
107
+ color: b.outlined ? btnColor : buttonColors.solidText,
106
108
  fontWeight: "600",
107
109
  fontSize: 14
108
110
  }, children: b.title })
@@ -116,7 +118,7 @@ function KitsConfirm(props) {
116
118
  {
117
119
  style: [styles.actionBtn, stretch && styles.actionBtnSheet, { backgroundColor: colors.solid, flex: 1 }],
118
120
  onPress: () => doClick(accept),
119
- children: /* @__PURE__ */ jsx(Text, { style: styles.btnTextPrimary, children: acceptLabel })
121
+ children: /* @__PURE__ */ jsx(Text, { style: [styles.btnTextPrimary, { color: colors.solidText }], children: acceptLabel })
120
122
  },
121
123
  "accept"
122
124
  );
@@ -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, {Easing, FadeIn, FadeOut, runOnJS, 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, scrimExitDuration} from \"../../../animations\";\nimport {sheetEnter, sheetExit} from \"../sheetMotion\";\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 /* Contains the sheet — see `scrimExitDuration`. */\n exiting={FadeOut.duration(scrimExitDuration(anim.sheet.exitDuration))}\n style={[styles.sheetOverlay, {backgroundColor: scrimColor}, resolvedMaskStyle as any]}\n >\n <Pressable style={StyleSheet.absoluteFill} onPress={hide}/>\n <Animated.View\n /* ⛔ THE SAME FAULT AS `Dialog`'s SHEET, AND THE SAME ANSWER —\n see `../sheetMotion`. `SlideInDown` takes its travel from\n the window, and inside an RN `Modal` the window it measures\n is not the screen, so the panel is placed at rest on frame\n one. Measured on the Dialog, 30 September 2026; this file\n has the identical shape, so it takes the identical fix\n rather than a second one (§5).\n ⚠️ AND THIS FILE IS NOT YET WHOLE. Its panel is still a\n CHILD of the scrim above, so it still inherits the scrim's\n fade — the defect `Dialog` had corrected on 29 September and\n that was recorded then as this file's own next unit. The\n sheet will now slide AND fade here. That is better than not\n sliding, and it is still not the ruled motion. Not fixed in\n this unit, and not left unsaid. */\n entering={sheetEnter(anim.sheet.enter)}\n exiting={sheetExit(anim.sheet.exitDuration, handleExitFinished)}\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 /* Contains the centred panel — see `scrimExitDuration`. */\n exiting={FadeOut.duration(scrimExitDuration(anim.confirm.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 /* Contains the centred panel — see `scrimExitDuration`. */\n exiting={FadeOut.duration(scrimExitDuration(anim.confirm.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":";;;;;;;;;;;;;;;;AAsBA,SAAS,mBAAmB,OAAA,EAAkB;AAC1C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,KAAA,CAAM,SAAS,OAAO,CAAA;AACpD,EAAA,MAAM,UAAA,GAAa,KAAA,CAAM,MAAA,CAAO,OAAO,CAAA;AACvC,EAAA,KAAA,CAAM,UAAU,MAAM;AAClB,IAAA,UAAA,CAAW,OAAA,GAAU,OAAA;AACrB,IAAA,IAAI,OAAA,aAAoB,IAAI,CAAA;AAAA,EAChC,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,MAAM,kBAAA,GAAqB,KAAA,CAAM,WAAA,CAAY,MAAM;AAC/C,IAAA,IAAI,CAAC,UAAA,CAAW,OAAA,EAAS,UAAA,CAAW,KAAK,CAAA;AAAA,EAC7C,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,OAAO,EAAC,SAAS,kBAAA,EAAkB;AACvC;AAEA,SAAwB,YAAY,KAAA,EAA4B;AAC5D,EAAA,MAAM;AAAA,IACF,OAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA,GAAO,WAAA;AAAA,IACP,MAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAA,GAAc,QAAA;AAAA,IACd,WAAA,GAAc,QAAA;AAAA,IACd,OAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA,EAAO,SAAA;AAAA,IACP,MAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA,GAAW,QAAA;AAAA,IACX,KAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,GAAG;AAAA,GACP,GAAI,KAAA;AAEJ,EAAA,MAAM,EAAC,YAAA,EAAc,KAAA,EAAK,GAAI,YAAA,EAAa;AAC3C,EAAA,MAAM,MAAA,GAAS,kBAAkB,IAAI,CAAA;AACrC,EAAA,MAAM,YAAY,oBAAA,EAAqB;AACvC,EAAA,MAAM,SAAS,iBAAA,EAAkB;AAEjC,EAAA,MAAM,YAAA,GAAe,aAAa,cAAc,CAAA;AAChD,EAAA,MAAM,SAAA,GAAY,aAAa,MAAM,CAAA;AACrC,EAAA,MAAM,YAAA,GAAe,aAAa,UAAU,CAAA;AAC5C,EAAA,MAAM,YAAA,GAAe,aAAa,UAAU,CAAA;AAE5C,EAAA,MAAM,UAAA,GAAa,aAAa,gBAAgB,CAAA;AAChD,EAAA,MAAM,SAAA,GAAY,IAAA,KAAS,OAAA,GAAU,KAAA,CAAM,OAAO,IAAA,GAAO,IAAA;AAEzD,EAAA,MAAM,aAAA,GAAgB,gBAAA,CAAiB,KAAA,IAAS,EAAE,CAAA;AAClD,EAAA,MAAM,oBAAA,GAAuB,gBAAA,CAAiB,YAAA,IAAgB,EAAE,CAAA;AAChE,EAAA,MAAM,mBAAA,GAAsB,gBAAA,CAAiB,WAAA,IAAe,EAAE,CAAA;AAC9D,EAAA,MAAM,iBAAA,GAAoB,gBAAA,CAAiB,SAAA,IAAa,EAAE,CAAA;AAE1D,EAAA,MAAM,EAAC,OAAA,EAAS,kBAAA,KAAsB,kBAAA,CAAmB,CAAC,CAAC,OAAO,CAAA;AAClE,EAAA,IAAI,CAAC,SAAS,OAAO,IAAA;AAErB,EAAA,MAAM,UAAU,QAAA,KAAa,QAAA;AAC7B,EAAA,MAAM,IAAA,GAAO,MAAM,MAAA,GAAS,MAAM,CAAA;AAElC,EAAA,MAAM,OAAA,GAAU,OAAO,QAAA,KAA0B;AAC7C,IAAA,IAAI,SAAA,EAAW;AACX,MAAA,MAAM,QAAA,IAAW;AACjB,MAAA,IAAA,EAAK;AAAA,IACT,CAAA,MAAO;AACH,MAAA,IAAA,EAAK;AACL,MAAA,QAAA,IAAW;AAAA,IACf;AAAA,EACJ,CAAA;AAEA,EAAA,MAAM,QAAA,GAAW,IAAA,IAAQ,IAAA,IAAQ,SAAA,IAAa,IAAA;AAK9C,EAAA,MAAM,OAAA,GAAU,YAAA;AAMhB,EAAA,MAAM,aAAA,GAAgB,CAAC,OAAA,KAAqB;AACxC,IAAA,IAAI,SAAS,MAAA,EAAQ;AACjB,MAAA,uBACI,GAAA,CAAC,QAAK,KAAA,EAAO,MAAA,CAAO,WACf,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,KAAM;AACnB,QAAA,MAAM,WAAW,SAAA,CAAU,CAAA,CAAE,QAAQ,IAAI,CAAA,EAAG,SAAS,MAAA,CAAO,KAAA;AAC5D,QAAA,uBACI,GAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YAEG,UAAU,CAAA,CAAE,QAAA;AAAA,YACZ,KAAA,EAAO;AAAA,cACH,MAAA,CAAO,SAAA;AAAA,cACP,WAAW,MAAA,CAAO,cAAA;AAAA,cAClB,OAAA,IAAW,EAAC,IAAA,EAAM,CAAA,EAAC;AAAA,cACnB,CAAA,CAAE,QAAA,GACI,EAAC,eAAA,EAAiB,aAAA,EAAe,WAAA,EAAa,QAAA,EAAU,WAAA,EAAa,GAAA,EAAG,GACxE,EAAC,eAAA,EAAiB,QAAA,EAAQ;AAAA,cAChC,CAAA,CAAE,OAAA,IAAW,EAAC,YAAA,EAAc,GAAA,EAAG;AAAA,cAC/B,CAAA,CAAE,QAAA,IAAY,EAAC,OAAA,EAAS,GAAA;AAAG,aAC/B;AAAA,YACA,SAAS,MAAM,CAAA,CAAE,OAAA,CAAQ,IAAA,EAAM,QAAQ,MAAM,CAAA;AAAA,YAE7C,QAAA,kBAAA,GAAA,CAAC,QAAK,KAAA,EAAO;AAAA,cACT,KAAA,EAAO,CAAA,CAAE,QAAA,GAAW,QAAA,GAAW,MAAA;AAAA,cAC/B,UAAA,EAAY,KAAA;AAAA,cACZ,QAAA,EAAU;AAAA,aACd,EACK,YAAE,KAAA,EACP;AAAA,WAAA;AAAA,UApBK;AAAA,SAqBT;AAAA,MAER,CAAC,CAAA,EACL,CAAA;AAAA,IAER;AAEA,IAAA,MAAM,SAAA,mBACF,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QAEG,KAAA,EAAO,CAAC,MAAA,CAAO,SAAA,EAAW,OAAA,IAAW,MAAA,CAAO,cAAA,EAAgB,EAAC,eAAA,EAAiB,MAAA,CAAO,KAAA,EAAO,IAAA,EAAM,GAAE,CAAA;AAAA,QACpG,OAAA,EAAS,MAAM,OAAA,CAAQ,MAAM,CAAA;AAAA,QAE7B,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,KAAA,EAAO,MAAA,CAAO,gBAAiB,QAAA,EAAA,WAAA,EAAY;AAAA,OAAA;AAAA,MAJ7C;AAAA,KAKR;AAEJ,IAAA,MAAM,SAAA,GAAY,CAAC,SAAA,mBACf,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QAEG,KAAA,EAAO,CAAC,MAAA,CAAO,SAAA,EAAW,OAAO,iBAAA,EAAmB,OAAA,IAAW,MAAA,CAAO,cAAA,EAAgB,EAAC,WAAA,EAAa,MAAA,CAAO,KAAA,EAAO,IAAA,EAAM,GAAE,CAAA;AAAA,QAC1H,OAAA,EAAS,MAAM,OAAA,CAAQ,MAAM,CAAA;AAAA,QAE7B,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,KAAA,EAAO,CAAC,MAAA,CAAO,eAAA,EAAiB,EAAC,KAAA,EAAO,MAAA,CAAO,KAAA,EAAM,CAAA,EAAI,QAAA,EAAA,WAAA,EAAY;AAAA,OAAA;AAAA,MAJvE;AAAA,KAKR,GACA,IAAA;AAEJ,IAAA,2BACK,IAAA,EAAA,EAAK,KAAA,EAAO,MAAA,CAAO,SAAA,EACf,oCAAU,IAAA,CAAA,QAAA,EAAA,EAAG,QAAA,EAAA;AAAA,MAAA,SAAA;AAAA,MAAW;AAAA,KAAA,EAAU,oBAAM,IAAA,CAAA,QAAA,EAAA,EAAG,QAAA,EAAA;AAAA,MAAA,SAAA;AAAA,MAAW;AAAA,KAAA,EAAU,CAAA,EACrE,CAAA;AAAA,EAER,CAAA;AAGA,EAAA,IAAI,OAAA,EAAS;AACT,IAAA,uBACI,GAAA,CAAC,KAAA,EAAA,EAAM,OAAA,EAAO,IAAA,EAAC,WAAA,EAAW,MAAC,aAAA,EAAc,MAAA,EAAO,cAAA,EAAgB,IAAA,EAC3D,QAAA,EAAA,OAAA,oBACD,IAAA;AAAA,MAAC,QAAA,CAAS,IAAA;AAAA,MAAT;AAAA,QACG,QAAA,EAAU,MAAA,CAAO,QAAA,CAASA,iBAAA,CAAK,MAAM,aAAa,CAAA;AAAA,QAElD,SAAS,OAAA,CAAQ,QAAA,CAAS,kBAAkBA,iBAAA,CAAK,KAAA,CAAM,YAAY,CAAC,CAAA;AAAA,QACpE,KAAA,EAAO,CAAC,MAAA,CAAO,YAAA,EAAc,EAAC,eAAA,EAAiB,UAAA,IAAa,iBAAwB,CAAA;AAAA,QAEpF,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,SAAA,EAAA,EAAU,KAAA,EAAO,UAAA,CAAW,YAAA,EAAc,SAAS,IAAA,EAAK,CAAA;AAAA,0BACzD,IAAA;AAAA,YAAC,QAAA,CAAS,IAAA;AAAA,YAAT;AAAA,cAeG,QAAA,EAAU,UAAA,CAAWA,iBAAA,CAAK,KAAA,CAAM,KAAK,CAAA;AAAA,cACrC,OAAA,EAAS,SAAA,CAAUA,iBAAA,CAAK,KAAA,CAAM,cAAc,kBAAkB,CAAA;AAAA,cAC9D,KAAA,EAAO;AAAA,gBACH,MAAA,CAAO,UAAA;AAAA,gBACP,EAAC,eAAA,EAAiB,OAAA,EAAS,aAAA,EAAe,EAAA,GAAK,OAAO,MAAA,EAAM;AAAA,gBAC5D,aAAA;AAAA,gBACA;AAAA,eACJ;AAAA,cAGA,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAO,CAAC,MAAA,CAAO,SAAS,EAAC,eAAA,EAAiB,YAAA,EAAa,CAAA,EAAE,CAAA;AAAA,gBAG9D,MAAA,IAAU,IAAA,oBACP,GAAA,CAAC,IAAA,EAAA,EAAK,OAAO,CAAC,MAAA,CAAO,WAAA,EAAa,EAAC,KAAA,EAAO,SAAA,EAAS,EAAG,mBAA0B,GAC3E,QAAA,EAAA,MAAA,EACL,CAAA;AAAA,gBAIH,OAAA,IAAW,IAAA,oBACR,GAAA,CAAC,IAAA,EAAA,EAAK,KAAA,EAAO,CAAC,MAAA,CAAO,YAAA,EAAc,EAAC,KAAA,EAAO,YAAA,EAAa,GACnD,QAAA,EAAA,OAAA,EACL,CAAA;AAAA,gBAIH,QAAA;AAAA,gBAGA,cAAc,IAAI;AAAA;AAAA;AAAA;AACvB;AAAA;AAAA,KACJ,EAEJ,CAAA;AAAA,EAER;AAGA,EAAA,IAAI,OAAA,EAAS;AACT,IAAA,uBACI,GAAA,CAAC,KAAA,EAAA,EAAM,OAAA,EAAO,IAAA,EAAC,WAAA,EAAW,MAAC,aAAA,EAAc,MAAA,EAAO,cAAA,EAAgB,IAAA,EAC3D,QAAA,EAAA,OAAA,oBACD,IAAA;AAAA,MAAC,QAAA,CAAS,IAAA;AAAA,MAAT;AAAA,QACG,QAAA,EAAU,MAAA,CAAO,QAAA,CAASA,iBAAA,CAAK,MAAM,aAAa,CAAA;AAAA,QAElD,SAAS,OAAA,CAAQ,QAAA,CAAS,kBAAkBA,iBAAA,CAAK,OAAA,CAAQ,YAAY,CAAC,CAAA;AAAA,QACtE,KAAA,EAAO,CAAC,MAAA,CAAO,OAAA,EAAS,EAAC,eAAA,EAAiB,UAAA,IAAa,iBAAwB,CAAA;AAAA,QAE/E,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,SAAA,EAAA,EAAU,KAAA,EAAO,UAAA,CAAW,YAAA,EAAc,SAAS,IAAA,EAAK,CAAA;AAAA,0BACzD,GAAA;AAAA,YAAC,QAAA,CAAS,IAAA;AAAA,YAAT;AAAA,cACG,QAAA,EAAU,OAAO,SAAA,EAAU,CAAE,QAAQA,iBAAA,CAAK,OAAA,CAAQ,QAAQ,OAAO,CAAA,CAAE,UAAUA,iBAAA,CAAK,OAAA,CAAQ,QAAQ,SAAS,CAAA,CAAE,KAAKA,iBAAA,CAAK,OAAA,CAAQ,OAAA,CAAQ,IAAS,CAAA;AAAA,cAChJ,SAAS,OAAA,CAAQ,QAAA,CAASA,iBAAA,CAAK,OAAA,CAAQ,YAAY,CAAA,CAAE,MAAA,CAAO,MAAA,CAAO,EAAA,CAAG,OAAO,IAAI,CAAC,CAAA,CAAE,YAAA,CAAa,CAAC,QAAA,KAAa;AAC3G,gBAAA,SAAA;AACA,gBAAA,IAAI,QAAA,EAAU,OAAA,CAAQ,kBAAkB,CAAA,EAAE;AAAA,cAC9C,CAAC,CAAA;AAAA,cACD,KAAA,EAAO;AAAA,gBACH,MAAA,CAAO,KAAA;AAAA,gBACP,EAAC,eAAA,EAAiB,YAAA,EAAc,QAAA,EAAU,GAAA,EAAK,UAAU,GAAA,EAAG;AAAA,gBAC5D,aAAA;AAAA,gBACA;AAAA,eACJ;AAAA,cAEC,QAAA,EAAA;AAAA;AAAA;AACL;AAAA;AAAA,KACJ,EAEJ,CAAA;AAAA,EAER;AAEA,EAAA,uBACI,GAAA,CAAC,KAAA,EAAA,EAAM,OAAA,EAAO,IAAA,EAAC,WAAA,EAAW,MAAC,aAAA,EAAc,MAAA,EAAO,cAAA,EAAgB,IAAA,EAC3D,QAAA,EAAA,OAAA,oBACD,IAAA;AAAA,IAAC,QAAA,CAAS,IAAA;AAAA,IAAT;AAAA,MACG,QAAA,EAAU,MAAA,CAAO,QAAA,CAASA,iBAAA,CAAK,MAAM,aAAa,CAAA;AAAA,MAElD,SAAS,OAAA,CAAQ,QAAA,CAAS,kBAAkBA,iBAAA,CAAK,OAAA,CAAQ,YAAY,CAAC,CAAA;AAAA,MACtE,KAAA,EAAO,CAAC,MAAA,CAAO,OAAA,EAAS,EAAC,eAAA,EAAiB,UAAA,IAAa,iBAAwB,CAAA;AAAA,MAE/E,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,SAAA,EAAA,EAAU,KAAA,EAAO,UAAA,CAAW,YAAA,EAAc,SAAS,IAAA,EAAK,CAAA;AAAA,wBAGzD,IAAA,CAAC,IAAA,EAAA,EAAK,KAAA,EAAO,MAAA,CAAO,SAAA,EAEf,QAAA,EAAA;AAAA,UAAA,QAAA,oBACG,GAAA;AAAA,YAAC,QAAA,CAAS,IAAA;AAAA,YAAT;AAAA,cACG,QAAA,EAAU,MAAA,CAAO,SAAA,EAAU,CAAE,OAAA,CAAQA,iBAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,OAAO,CAAA,CAAE,SAAA,CAAUA,iBAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,SAAS,CAAA,CAAE,IAAA,CAAKA,iBAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,IAAS,CAAA,CAAE,KAAA,CAAMA,iBAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,KAAU,CAAA;AAAA,cAC3K,OAAA,EAAS,OAAA,CAAQ,QAAA,CAASA,iBAAA,CAAK,OAAA,CAAQ,YAAY,CAAA,CAAE,MAAA,CAAO,MAAA,CAAO,EAAA,CAAG,MAAA,CAAO,IAAI,CAAC,CAAA;AAAA,cAClF,KAAA,EAAO,CAAC,MAAA,CAAO,UAAA,EAAY,EAAC,eAAA,EAAiB,MAAA,CAAO,QAAO,CAAA;AAAA,cAE1D,QAAA,EAAA,SAAA,GAAY,SAAA,GAAY,OAAO,IAAA,KAAS,2BACrC,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAM,IAAA,EAAe,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,MAAA,CAAO,QAAO,CAAA,GAE5D;AAAA;AAAA,WAER;AAAA,0BAIJ,IAAA;AAAA,YAAC,QAAA,CAAS,IAAA;AAAA,YAAT;AAAA,cACG,QAAA,EAAU,OAAO,SAAA,EAAU,CAAE,QAAQA,iBAAA,CAAK,OAAA,CAAQ,MAAM,OAAO,CAAA,CAAE,UAAUA,iBAAA,CAAK,OAAA,CAAQ,MAAM,SAAS,CAAA,CAAE,KAAKA,iBAAA,CAAK,OAAA,CAAQ,KAAA,CAAM,IAAS,CAAA;AAAA,cAC1I,SAAS,OAAA,CAAQ,QAAA,CAASA,iBAAA,CAAK,OAAA,CAAQ,YAAY,CAAA,CAAE,MAAA,CAAO,MAAA,CAAO,EAAA,CAAG,OAAO,IAAI,CAAC,CAAA,CAAE,YAAA,CAAa,CAAC,QAAA,KAAa;AAC3G,gBAAA,SAAA;AACA,gBAAA,IAAI,QAAA,EAAU,OAAA,CAAQ,kBAAkB,CAAA,EAAE;AAAA,cAC9C,CAAC,CAAA;AAAA,cACD,KAAA,EAAO;AAAA,gBACH,MAAA,CAAO,KAAA;AAAA,gBACP;AAAA,kBACI,eAAA,EAAiB,OAAA;AAAA,kBACjB,UAAA,EAAY,WAAW,EAAA,GAAK,EAAA;AAAA,kBAC5B,GAAA,EAAK;AAAA,iBACT;AAAA,gBACA,aAAA;AAAA,gBACA;AAAA,eACJ;AAAA,cAGA,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,aAAU,KAAA,EAAO,MAAA,CAAO,UAAU,OAAA,EAAS,IAAA,EAAM,SAAS,EAAA,EACvD,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,KAAA,EAAO,EAAC,QAAA,EAAU,EAAA,EAAI,OAAO,YAAA,EAAY,EAAG,oBAAC,CAAA,EACvD,CAAA;AAAA,gBAGC,MAAA,IAAU,IAAA,oBACP,GAAA,CAAC,IAAA,EAAA,EAAK,OAAO,CAAC,MAAA,CAAO,MAAA,EAAQ,EAAC,KAAA,EAAO,SAAA,EAAS,EAAG,mBAA0B,GACtE,QAAA,EAAA,MAAA,EACL,CAAA;AAAA,gBAIH,OAAA,IAAW,IAAA,oBACR,GAAA,CAAC,IAAA,EAAA,EAAK,KAAA,EAAO,CAAC,MAAA,CAAO,OAAA,EAAS,EAAC,KAAA,EAAO,YAAA,EAAa,GAC9C,QAAA,EAAA,OAAA,EACL,CAAA;AAAA,gBAIH,QAAA;AAAA,gBAGA,cAAc,KAAK;AAAA;AAAA;AAAA;AACxB,SAAA,EACJ;AAAA;AAAA;AAAA,GACJ,EAEJ,CAAA;AAER;AAEA,MAAM,MAAA,GAAS,WAAW,MAAA,CAAO;AAAA,EAC7B,OAAA,EAAS;AAAA,IACL,IAAA,EAAM,CAAA;AAAA,IACN,cAAA,EAAgB,QAAA;AAAA,IAChB,UAAA,EAAY,QAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACb;AAAA,EACA,YAAA,EAAc;AAAA,IACV,IAAA,EAAM,CAAA;AAAA,IACN,cAAA,EAAgB;AAAA,GACpB;AAAA,EACA,UAAA,EAAY;AAAA;AAAA,IAER,mBAAA,EAAqB,EAAA;AAAA,IACrB,oBAAA,EAAsB,EAAA;AAAA,IACtB,iBAAA,EAAmB,EAAA;AAAA,IACnB,UAAA,EAAY,EAAA;AAAA,IACZ,GAAA,EAAK,EAAA;AAAA;AAAA,IAEL,SAAA,EAAW,CAAA;AAAA,IACX,WAAA,EAAa,MAAA;AAAA,IACb,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,QAAQ,EAAA,EAAE;AAAA,IACnC,aAAA,EAAe,IAAA;AAAA,IACf,YAAA,EAAc;AAAA,GAClB;AAAA,EACA,OAAA,EAAS;AAAA,IACL,KAAA,EAAO,EAAA;AAAA,IACP,MAAA,EAAQ,CAAA;AAAA,IACR,YAAA,EAAc,GAAA;AAAA,IACd,SAAA,EAAW,QAAA;AAAA,IACX,YAAA,EAAc;AAAA,GAClB;AAAA,EACA,WAAA,EAAa;AAAA,IACT,QAAA,EAAU,EAAA;AAAA,IACV,UAAA,EAAY,KAAA;AAAA,IACZ,SAAA,EAAW;AAAA,GACf;AAAA,EACA,YAAA,EAAc;AAAA,IACV,QAAA,EAAU,EAAA;AAAA,IACV,UAAA,EAAY,EAAA;AAAA,IACZ,SAAA,EAAW;AAAA,GACf;AAAA,EACA,SAAA,EAAW;AAAA,IACP,QAAA,EAAU,GAAA;AAAA,IACV,QAAA,EAAU,GAAA;AAAA,IACV,UAAA,EAAY;AAAA,GAChB;AAAA,EACA,UAAA,EAAY;AAAA,IACR,KAAA,EAAO,EAAA;AAAA,IACP,MAAA,EAAQ,EAAA;AAAA,IACR,YAAA,EAAc,EAAA;AAAA,IACd,cAAA,EAAgB,QAAA;AAAA,IAChB,UAAA,EAAY,QAAA;AAAA,IACZ,MAAA,EAAQ,CAAA;AAAA,IACR,YAAA,EAAc,GAAA;AAAA,IACd,SAAA,EAAW,CAAA;AAAA,IACX,WAAA,EAAa,MAAA;AAAA,IACb,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,QAAQ,CAAA,EAAC;AAAA,IAClC,aAAA,EAAe,IAAA;AAAA,IACf,YAAA,EAAc;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACH,SAAA,EAAW,SAAA;AAAA;AAAA,IAEX,YAAA,EAAc,EAAA;AAAA,IACd,iBAAA,EAAmB,EAAA;AAAA,IACnB,aAAA,EAAe,EAAA;AAAA;AAAA,IAEf,SAAA,EAAW,CAAA;AAAA,IACX,WAAA,EAAa,MAAA;AAAA,IACb,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,QAAQ,CAAA,EAAC;AAAA,IAClC,aAAA,EAAe,IAAA;AAAA,IACf,YAAA,EAAc,EAAA;AAAA,IACd,UAAA,EAAY;AAAA,GAChB;AAAA,EACA,QAAA,EAAU;AAAA,IACN,QAAA,EAAU,UAAA;AAAA,IACV,GAAA,EAAK,EAAA;AAAA,IACL,KAAA,EAAO,EAAA;AAAA,IACP,MAAA,EAAQ;AAAA,GACZ;AAAA,EACA,MAAA,EAAQ;AAAA,IACJ,QAAA,EAAU,EAAA;AAAA,IACV,UAAA,EAAY,KAAA;AAAA,IACZ,SAAA,EAAW,QAAA;AAAA,IACX,YAAA,EAAc;AAAA,GAClB;AAAA,EACA,OAAA,EAAS;AAAA,IACL,QAAA,EAAU,EAAA;AAAA,IACV,SAAA,EAAW,QAAA;AAAA,IACX,UAAA,EAAY,EAAA;AAAA;AAAA,IAEZ,YAAA,EAAc;AAAA,GAClB;AAAA,EACA,SAAA,EAAW;AAAA,IACP,aAAA,EAAe,KAAA;AAAA,IACf,cAAA,EAAgB,QAAA;AAAA,IAChB,GAAA,EAAK,EAAA;AAAA,IACL,KAAA,EAAO;AAAA,GACX;AAAA,EACA,SAAA,EAAW;AAAA,IACP,eAAA,EAAiB,EAAA;AAAA,IACjB,iBAAA,EAAmB,EAAA;AAAA;AAAA;AAAA;AAAA,IAInB,YAAA,EAAc,GAAA;AAAA,IACd,QAAA,EAAU,GAAA;AAAA,IACV,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB;AAAA,GACpB;AAAA;AAAA,EAEA,cAAA,EAAgB;AAAA,IACZ,eAAA,EAAiB,EAAA;AAAA,IACjB,YAAA,EAAc;AAAA,GAClB;AAAA,EACA,iBAAA,EAAmB;AAAA,IACf,eAAA,EAAiB,aAAA;AAAA,IACjB,WAAA,EAAa;AAAA,GACjB;AAAA,EACA,cAAA,EAAgB;AAAA,IACZ,KAAA,EAAO,MAAA;AAAA,IACP,UAAA,EAAY,KAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACd;AAAA,EACA,eAAA,EAAiB;AAAA,IACb,UAAA,EAAY,KAAA;AAAA,IACZ,QAAA,EAAU;AAAA;AAElB,CAAC,CAAA;;;;"}
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, 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, scrimExitDuration} from \"../../../animations\";\nimport {sheetEnter, sheetExit} from \"../sheetMotion\";\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 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 } = 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('text-secondary');\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 try {\n callback?.();\n } finally {\n hide();\n }\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 buttonColors = allColors[b.type ?? type] ?? colors;\n const btnColor = buttonColors.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 : buttonColors.solidText,\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, {color: colors.solidText}]}>{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 /* Contains the sheet — see `scrimExitDuration`. */\n exiting={FadeOut.duration(scrimExitDuration(anim.sheet.exitDuration))}\n style={[styles.sheetOverlay, {backgroundColor: scrimColor}, resolvedMaskStyle as any]}\n >\n <Pressable style={StyleSheet.absoluteFill} onPress={hide}/>\n <Animated.View\n /* ⛔ THE SAME FAULT AS `Dialog`'s SHEET, AND THE SAME ANSWER —\n see `../sheetMotion`. `SlideInDown` takes its travel from\n the window, and inside an RN `Modal` the window it measures\n is not the screen, so the panel is placed at rest on frame\n one. Measured on the Dialog, 30 September 2026; this file\n has the identical shape, so it takes the identical fix\n rather than a second one (§5).\n ⚠️ AND THIS FILE IS NOT YET WHOLE. Its panel is still a\n CHILD of the scrim above, so it still inherits the scrim's\n fade — the defect `Dialog` had corrected on 29 September and\n that was recorded then as this file's own next unit. The\n sheet will now slide AND fade here. That is better than not\n sliding, and it is still not the ruled motion. Not fixed in\n this unit, and not left unsaid. */\n entering={sheetEnter(anim.sheet.enter)}\n exiting={sheetExit(anim.sheet.exitDuration, handleExitFinished)}\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 /* Contains the centred panel — see `scrimExitDuration`. */\n exiting={FadeOut.duration(scrimExitDuration(anim.confirm.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 /* Contains the centred panel — see `scrimExitDuration`. */\n exiting={FadeOut.duration(scrimExitDuration(anim.confirm.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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"}